home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / util / gnu / emacs_src_18_58.lha / emacs-18.58 / lisp / vip.elc < prev    next >
Text File  |  1992-02-21  |  69KB  |  1,268 lines

  1.  
  2. (defvar vip-emacs-local-map nil "\
  3. Local map used in emacs mode. (buffer specific)")
  4.  
  5. (defvar vip-emacs-old-commands nil "\
  6. Old Emacs definitions of C-x 3 and C-x TAB.")
  7.  
  8. (defvar vip-insert-local-map nil "\
  9. Local map used in insert command mode. (buffer specific)")
  10.  
  11. (make-variable-buffer-local (quote vip-emacs-local-map))
  12.  
  13. (make-variable-buffer-local (quote vip-emacs-old-commands))
  14.  
  15. (make-variable-buffer-local (quote vip-insert-local-map))
  16.  
  17. (defvar vip-insert-point nil "\
  18. Remember insert point as a marker. (buffer specific)")
  19.  
  20. (set-default (quote vip-insert-point) (make-marker))
  21.  
  22. (make-variable-buffer-local (quote vip-insert-point))
  23.  
  24. (defvar vip-com-point nil "\
  25. Remember com point as a marker. (buffer specific)")
  26.  
  27. (set-default (quote vip-com-point) (make-marker))
  28.  
  29. (make-variable-buffer-local (quote vip-com-point))
  30.  
  31. (defvar vip-current-mode nil "\
  32. Current mode.  One of emacs-mode, vi-mode, insert-mode.")
  33.  
  34. (make-variable-buffer-local (quote vip-current-mode))
  35.  
  36. (setq-default vip-current-mode (quote emacs-mode))
  37.  
  38. (defvar vip-emacs-mode-line-buffer-identification nil "\
  39. value of mode-line-buffer-identification in emacs-mode.")
  40.  
  41. (make-variable-buffer-local (quote vip-emacs-mode-line-buffer-identification))
  42.  
  43. (setq-default vip-emacs-mode-line-buffer-identification (quote ("Emacs: %17b")))
  44.  
  45. (defvar vip-current-major-mode nil "\
  46. vip-current-major-mode is the major-mode vi considers it is now.
  47. (buffer specific)")
  48.  
  49. (make-variable-buffer-local (quote vip-current-major-mode))
  50.  
  51. (defvar vip-last-shell-com nil "\
  52. last shell command executed by ! command")
  53.  
  54. (defvar vip-use-register nil "\
  55. name of register to store deleted or yanked strings.")
  56.  
  57. (defvar vip-d-com nil "\
  58. If non-nil, it's value is a list (M-COM VAL COM), and is used to
  59. re-execute last destrcutive command")
  60.  
  61. (defconst vip-shift-width 8 "\
  62. *The number of colums shifted by > and < command.")
  63.  
  64. (defconst vip-re-replace nil "\
  65. *If t then do regexp replace, if nil then do string replace.")
  66.  
  67. (defvar vip-d-char nil "\
  68. The character remenbered by the vi \"r\" command")
  69.  
  70. (defvar vip-f-char nil "\
  71. for use by \";\" command")
  72.  
  73. (defvar vip-F-char nil "\
  74. for use by \".\" command")
  75.  
  76. (defvar vip-f-forward nil "\
  77. for use by \";\" command")
  78.  
  79. (defvar vip-f-offset nil "\
  80. for use by \";\" command")
  81.  
  82. (defconst vip-search-wrap-around t "\
  83. *if t, search wraps around")
  84.  
  85. (defconst vip-re-search nil "\
  86. *if t, search is reg-exp search, otherwise vanilla search.")
  87.  
  88. (defvar vip-s-string nil "\
  89. last search string")
  90.  
  91. (defvar vip-s-forward nil "\
  92. if t, search is forward.")
  93.  
  94. (defconst vip-case-fold-search nil "\
  95. *if t, search ignores cases.")
  96.  
  97. (defconst vip-re-query-replace nil "\
  98. *If t then do regexp replace, if nil then do string replace.")
  99.  
  100. (defconst vip-open-with-indent nil "\
  101. *if t, indent when open a new line.")
  102.  
  103. (defconst vip-help-in-insert-mode nil "\
  104. *if t then C-h is bound to help-command in insert mode, if nil then it is
  105. bound to delete-backward-char.")
  106.  
  107. (defvar vip-quote-string "> " "\
  108. string inserted at the beginning of region")
  109.  
  110. (defvar vip-tags-file-name "TAGS")
  111.  
  112. (defvar vip-inhibit-startup-message nil)
  113.  
  114. (global-set-key "" (quote vip-change-mode-to-vi))
  115.  
  116. (defmacro vip-loop (count body) "(COUNT BODY) Execute BODY COUNT times." (byte-code "ÂÀDCÃÄÀÅE    ÆÀÇÀDEFE‡" [count body let while > 0 setq 1-] 9))
  117.  
  118. (defun vip-push-mark-silent (&optional location) "\
  119. Set mark at LOCATION (point, by default) and push old mark on mark ring.
  120. No message." (byte-code "Ä ?ƒ
  121. À‚+ÅÆ !    B‰ˆ    G
  122. V…+ÇÈ
  123.     \"@À\"ˆÉÈ
  124. S    \"À\"ˆÊ †2`!‡" [nil mark-ring mark-ring-max location mark copy-marker mark-marker move-marker nthcdr setcdr set-mark] 9))
  125.  
  126. (defun vip-goto-col (arg) "\
  127. Go to ARG's column." (interactive "P") (byte-code "ĈŠ   !Æ    !ŠÇ ˆiTV…ÈÉ!)ˆ
  128. …\"Ê `\"ˆË ˆÌS!ˆ
  129. …4ÍÎ
  130. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom end-of-line error "" move-marker beginning-of-line forward-char vip-execute-com vip-goto-col] 11))
  131.  
  132. (defun vip-refresh-mode-line nil "\
  133. Redraw mode line." (byte-code "ÀÁ !‡" [set-buffer-modified-p buffer-modified-p] 3))
  134.  
  135. (defun vip-copy-keymap (map) (byte-code "?ƒ
  136. Á ‚Â!‡" [map make-sparse-keymap copy-keymap] 3))
  137.  
  138. (defun vip-change-mode (new-mode) "\
  139. Change mode to NEW-MODE.  NEW-MODE is either emacs-mode, vi-mode,
  140. or insert-mode." (byte-code "    =†ÝË=ƒL    Ì=ƒÍ`
  141. \"ˆÎ ‚@Ï ÐÑ\"ÐÒ\"BÓÏ !‰ˆÔÑÕ#ˆÔÒÖ#ˆ×Ø!ˆÙ    !‚ÖÌ=ƒ»Ú
  142. `\"ˆ    Û=ƒ„Ï ÐÑ\"ÐÒ\"BÓÏ !‰ˆÔÑÕ#ˆÔÒÖ#‚ŠÓ !‰ˆ×Ü!ˆÙ!ˆÔÝÞ#ˆÔßà#ˆÔá
  143. ƒ¯â‚°ã#ˆÔäå#‚ÖÛ=…Ö×æ!ˆÔÑ @#ˆÔÒ A#ˆÙ !ˆ‰ˆç ‡" [new-mode vip-current-mode vip-insert-point vip-emacs-local-map vip-emacs-old-commands ctl-x-map vip-emacs-mode-line-buffer-identification mode-line-buffer-identification vip-insert-local-map vip-mode-map vip-help-in-insert-mode vi-mode insert-mode vip-copy-region-as-kill vip-repeat-insert-command current-local-map lookup-key "3" "    " vip-copy-keymap define-key vip-buffer-in-two-windows insert-file vip-change-mode-line "Vi:   " use-local-map move-marker emacs-mode "Insert" "" vip-change-mode-to-vi "" vip-ESC "" help-command delete-backward-char "" vip-delete-backward-word "Emacs:" vip-refresh-mode-line] 32))
  144.  
  145. (defun vip-copy-region-as-kill (beg end) "\
  146. If BEG and END do not belong to the same buffer, it copies empty region." (byte-code "ÀÁ‡" [nil (byte-code "    \"‡" [beg end copy-region-as-kill] 3) ((error (byte-code "Á\"‡" [beg copy-region-as-kill] 3)))] 3))
  147.  
  148. (defun vip-change-mode-line (string) "\
  149. Assuming that the mode line format contains the string \"Emacs:\", this
  150. function replaces the string by \"Vi:   \" etc." (byte-code "à   Ä\"ƒ
  151. ‚    ÅPC‰‡" [mode-line-buffer-identification string vip-emacs-mode-line-buffer-identification string= "Emacs:" " %17b"] 3))
  152.  
  153. (defun vip-mode nil "\
  154. Turn on VIP emulation of VI." (interactive) (byte-code "ˆ?…CÃÄ!ˆÅ ˆÆcˆebˆÇÈ!…7ŠÉÊË!!qˆdbˆÌcˆÍ ˆÎp!)ˆÏÐ!ˆÑÒ!ˆÎp!ˆÏÓ!ˆÁ‰ˆÔ ‡" [vip-inhibit-startup-message t nil switch-to-buffer "VIP Startup Message" erase-buffer "VIP is a Vi emulation package for GNU Emacs.  VIP provides most Vi commands
  155. including Ex commands.  VIP is however different from Vi in several points.
  156. You can get more information on VIP by:
  157.     1.  Typing `M-x info' and selecting menu item \"vip\".
  158.     2.  Typing `C-h k' followed by a key whose description you want.
  159.     3.  Printing VIP manual which can be found as GNU/man/vip.texinfo
  160.     4.  Printing VIP Reference Card which can be found as GNU/etc/vipcard.tex
  161.  
  162. This startup message appears whenever you load VIP unless you type `y' now.
  163. Type `n' to quit this window for now.
  164. " y-or-n-p "Inhibit VIP startup message? " find-file-noselect substitute-in-file-name "~/.vip" "
  165. (setq vip-inhibit-startup-message t)
  166. " save-buffer kill-buffer message "VIP startup message inhibited." sit-for 2 "" vip-change-mode-to-vi] 13))
  167.  
  168. (defun vip-change-mode-to-vi nil "\
  169. Change mode to vi mode." (interactive) (byte-code "ÀˆÁÂ!‡" [nil vip-change-mode vi-mode] 2))
  170.  
  171. (defun vip-change-mode-to-insert nil "\
  172. Change mode to insert mode." (interactive) (byte-code "ÀˆÁÂ!‡" [nil vip-change-mode insert-mode] 2))
  173.  
  174. (defun vip-change-mode-to-emacs nil "\
  175. Change mode to emacs mode." (interactive) (byte-code "ÀˆÁÂ!‡" [nil vip-change-mode emacs-mode] 2))
  176.  
  177. (defun vip-get-editor-command (l-map g-map &optional str) "\
  178. Read characters from keyboard until an editor command is formed, using
  179. local keymap L-MAP and global keymap G-MAP.  If the command is a
  180. self-insert-command, the character just read is returned instead.  Optional
  181. string STR is used as initial input string." (byte-code "ÇÇÇ ?†È É\"ƒr‚Ê !‰ˆ‰ˆË\"‰ˆ    ?ƒ[Ë\"‰ˆ
  182. ?ƒ=ǂXÌ
  183. !ƒMÍÇ
  184. Î !#‚X
  185. Ï=ƒW‚X
  186. ‚Ì    !ƒ’Ë\"‰ˆ
  187. ?ƒxÍ    ÇÎ !#‚Ì
  188. !ƒˆÍ    
  189. Î !#‚Í    ÇÎ !#‚    Ï=ƒœ‚    +‡" [char l-bind g-bind str last-command-char l-map g-map nil string= "" string-to-char vip-binding-of keymapp vip-get-editor-command vip-string-tail self-insert-command] 19))
  190.  
  191. (defun vip-binding-of (char map) "\
  192. Return key-binding of CHAR under keymap MAP.  It is nil if the binding
  193. is void, or a command, or a keymap" (byte-code "    <ƒÆ
  194.     \"A‚    
  195. H?ƒÂBÇ!ƒ.9ƒ*K‚+‚BK?†9Ç!ƒ@‚A))‡" [val map char nil t fun assq keymapp] 4))
  196.  
  197. (defun vip-escape-to-emacs (arg &optional char) "\
  198. Escape to emacs mode and execute one emacs command and then return to
  199. vi mode.  ARG is used as the prefix value for the executed command.  If
  200. CHAR is given it becomes the first character of the command." (interactive "P") (byte-code "ȈÈpà … ‰ˆ‰ˆ
  201. †ÌY…\\ȉˆÍ    
  202. \"‰ˆÎ!ƒSÏ!  ÌV…OÐ!cˆ S‰ ˆ‚9)‚XÑ\"ˆ‚ˆÈ‰+‡" [com buff first t char unread-command-char prefix-arg arg nil vip-emacs-local-map global-map count 0 vip-get-editor-command numberp vip-p-val char-to-string command-execute] 8))
  203.  
  204. (defun vip-message-conditions (conditions) "\
  205. Print CONDITIONS as a message." (byte-code "    @    A
  206. ?ƒÃÄ\"‚ÃÅÆ
  207. !#ˆÇ *‡" [case conditions msg message "%s" "%s %s" prin1-to-string ding] 6))
  208.  
  209. (defun vip-ESC (arg) "\
  210. Emulate ESC key in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-escape-to-emacs 27] 3))
  211.  
  212. (defun vip-ctl-c (arg) "\
  213. Emulate C-c key in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-escape-to-emacs 3] 3))
  214.  
  215. (defun vip-ctl-x (arg) "\
  216. Emulate C-x key in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-escape-to-emacs 24] 3))
  217.  
  218. (defun vip-ctl-h (arg) "\
  219. Emulate C-h key in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-escape-to-emacs 8] 3))
  220.  
  221. (defun vip-prefix-arg-value (char value com) "\
  222. Compute numeric prefix arg value.  Invoked by CHAR.  VALUE is the value
  223. obtained so far, and COM is the command part obtained so far." (byte-code "ÅY…    ÆX…(ÇÈ    !ƒ    ‚ÉÊ\"ÅZ\\‰ˆr‰ˆ‚ˆ    ‰ˆ …6
  224. B‰ˆËU…HÌ
  225. !ˆr‰ˆ‚7ˆ‰‡" [char value prefix-arg com unread-command-char 48 57 * numberp 0 10 85 vip-describe-arg] 6))
  226.  
  227. (defun vip-prefix-arg-com (char value com) "\
  228. Vi operator as prefix argument." (byte-code "Á…E
  229. ÊU†E
  230. ËU†E
  231. ÌU†E
  232. ÍU†E
  233. ÎU†E
  234. ÏU†E
  235. ÐU†E
  236. ÑU†E
  237. ÒU†E
  238. ÓU†E
  239. ÔU…û ƒh
  240. ÑU†U
  241. ÔU…[ÕÖ!ˆ
  242. B‰ˆÄ‰‚÷
  243. ÍU†q
  244. ÐUƒ‚
  245. ‰ˆr‰ˆÄ‰‚÷
  246. ÑUƒ˜×r\\‰ˆr‰ˆÄ‰‚÷
  247. ÎU†¡
  248. ÏUƒ¾
  249. ‰ˆr‰ˆ
  250. U…·
  251. B‰ˆÄ‰‚÷
  252. ÔUƒðrØX…ÏÙX†ÛÚX…ÛÛXƒå‰‚èÕÖ!ˆr‰)‚÷
  253. ‰ˆr‰ˆ‚)ˆÜ !ƒ% B‰ˆ
  254. ÝU…Þ!ˆr‰ˆ‚ ˆ
  255. ‰    ‚ï @ÒU†0 @ÓUƒ[ @ A B‰ˆ
  256. ÒUƒNß!‚Rà!ˆÄ‰*‚ï?ƒeá‚g‰ˆÄ‰ˆâ ã\"ƒ€äåB!‚ïâ æ\"ƒäçB!‚ïâ è\"ƒœ頂ïâ ê\"ƒ¬äëB!‚ïâ ì\"ƒ¼äÎB!‚ïâ í\"ƒÌäÏB!‚ïâ î\"ƒÜäÍB!‚ïâ ï\"ƒìäÐB!‚ïÕÖ!‡" [cont t char com nil reg vip-use-register prefix-arg value unread-command-char 99 100 121 33 60 62 61 35 114 82 34 error "" 128 65 122 49 57 atom 85 vip-describe-arg vip-region vip-Region 1 equal (99 . 99) vip-line 67 (100 . 100) 68 (100 . 121) vip-yank-defun (121 . 121) 89 (60 . 60) (62 . 62) (33 . 33) (61 . 61)] 24))
  257.  
  258. (defun vip-describe-arg (arg) (byte-code "ÃÃÄ
  259. !Å
  260. !‰ˆ?ƒ%    ?ƒÆÇ!‚\"ÆÈ    \"‚6    ?ƒ1ÆÉ\"‚6ÆÊ    #*‡" [val com arg nil vip-P-val vip-getcom message "Value is nil, and commmand is nil." "Value is nil, and command is %c." "Value is %d, and command is nil." "Value is %d, and command is %c."] 9))
  261.  
  262. (defun vip-digit-argument (arg) "\
  263. Begin numeric argument for the next command." (interactive "P") (byte-code "ÁˆÃÁ
  264. :ƒ
  265. A‚Á#‡" [last-command-char nil arg vip-prefix-arg-value] 4))
  266.  
  267. (defun vip-command-argument (arg) "\
  268. Accept a motion command as an argument." (interactive "P") (byte-code "ÀˆÁÂχ" [nil conditions (byte-code "Ä    ?ƒ ‚\"    :ƒ    @‚\"Å    !ƒ    ‚\"ÆÇ!    ?ƒ+‚B    :ƒ5    A‚BÅ    !ƒ?‚BÆÇ!#‡" [last-command-char arg nil t vip-prefix-arg-com numberp error "strange arg"] 8) ((quit (byte-code "Á‰ˆÂÃÁ\"‡" [vip-use-register nil signal quit] 3)))] 3))
  269.  
  270. (defun vip-p-val (arg) "\
  271. Get value part of prefix-argument ARG." (byte-code "?ƒ    Â‚:ƒ@?ƒ‚@‚‡" [arg t 1] 1))
  272.  
  273. (defun vip-P-val (arg) "\
  274. Get value part of prefix-argument ARG." (byte-code ":ƒ
  275. @‚ ‡" [arg t] 1))
  276.  
  277. (defun vip-getcom (arg) "\
  278. Get com part of prefix-argument ARG." (byte-code "?ƒ    Á‚:ƒA‚Á‡" [arg nil t] 1))
  279.  
  280. (defun vip-getCom (arg) "\
  281. Get com part of prefix-argument ARG and modify it." (byte-code "à   !ÄÅ\"ƒƂ&ÄÇ\"ƒȂ&ÄÉ\"ƒ%ʂ&)‡" [com arg t vip-getcom equal 99 67 100 68 121 89] 6))
  282.  
  283. (defun vip-append-to-register (reg start end) "\
  284. Append region to text in register REG.
  285. START and END are buffer positions indicating what to append." (byte-code "ÃÄ!†    ÅÆ    
  286. \"P\"‡" [reg start end set-register get-register "" buffer-substring] 7))
  287.  
  288. (defun vip-execute-com (m-com val com) "\
  289. (M-COM VAL COM)  Execute command COM. The list (M-COM VAL COM) is set
  290. to vip-d-com for later use by vip-repeat" (byte-code "    
  291. …µ
  292. ÍUƒÎ `\"‚µ
  293. Í[Uƒ!Ï `\"‚µ
  294. ÐU†+
  295. Ð[Uƒ‘ŠÑ !ˆÒÓ `\"ˆ    …uÔ    X…F    ÕXƒSÖ    Ó `Ä$‚q×    X…\\    ØXƒjÙ    Ú\\Ó `#‚qĉˆÛÜ!ˆÄ‰ˆÝÓ `\")ˆÞß!ˆ
  296. ÐUƒŒà ‚Žá ‚µ
  297. âUƒî    …ÑÔ    X…¤    ÕXƒ°Ö     `Ä$‚Í×    X…¹    ØXƒÆÙ    Ú\\ `#‚ÍĉˆÛÜ!ˆÄ‰ˆã=ƒÝä‚Þĉˆä `\"ˆã‰‚µ
  298. åUƒdŠÑ !ˆÒÓ `\"ˆ    …;Ô    X…     ÕXƒÖ    Ó `Ä$‚7×    X…\"    ØXƒ0Ù    Ú\\Ó `#‚7ĉˆÛÜ!ˆÄ‰ˆæ=ƒGä‚HĉˆäÓ `\"ˆç=…]æ‰)ˆè ‚µ
  299. éUƒ´    …¤Ô    X…w    ÕXƒƒÖ     `Ä$‚ ×    X…Œ    ØXƒ™Ù    Ú\\ `#‚ ĉˆÛÜ!ˆÄ‰ˆÄ‰ˆê `\"ˆ b‚µ
  300. ëUƒŠÑ !ˆÒÓ `\"ˆ    …Ô    X…Ò    ÕXƒßÖ    Ó `Ä$‚ý×    X…è    ØXƒöÙ    Ú\\Ó `#‚ýĉˆÛÜ!ˆÄ‰ˆÄ‰ˆêÓ `\")ˆ b‚µ
  301. ìU†
  302. ì[UƒFŠÑ !ˆÒÓ `\"ˆíÓ `
  303. ìUƒ>îï!‰    ‚@    Å$)‚µ
  304. ðUƒkŠÑ !ˆÒÓ `\"ˆÓ `V…`ñ ˆòÓ `Ä#)‚µ
  305. óUƒ‹ŠÑ !ˆÒÓ `\"ˆôÓ `
  306. [#)ˆ b‚µ
  307. õUƒªŠÑ !ˆÒÓ `\"ˆôÓ `
  308. #)ˆ b‚µ
  309. öY…µ÷
  310. öZ!ˆ
  311. ÍU†É
  312. ÐU†É
  313. ìUƒÑ
  314. [‚Ò
  315. F‰ )‡" [reg vip-use-register com vip-com-point nil t last-command this-command m-com vip-last-shell-com vip-shift-width vip-d-com val 99 vip-change vip-change-subr 67 set-mark vip-enlarge-region mark 97 122 copy-to-register 65 90 vip-append-to-register 32 error "" delete-region open-line 1 vip-change-mode-to-insert yank 100 d-command kill-region 68 D-command vip-line back-to-indentation 121 copy-region-as-kill 89 33 shell-command-on-region vip-read-string "!" 61 exchange-point-and-mark indent-region 60 indent-rigidly 62 128 vip-special-prefix-com] 72))
  316.  
  317. (defun vip-repeat (arg) "\
  318. (ARG)  Re-excute last destructive command.  vip-d-com has the form
  319. (COM ARG CH REG), where COM is the command to be re-executed, ARG is the
  320. argument for COM, CH is a flag for repeat, and REG is optional and if exists
  321. is the name of the register for COM." (interactive "P") (byte-code "ȈÉ=ƒÊ ‚?
  322. @Ë !
  323. AA@Ì
  324. 8 ?…(
  325. A@‰ˆ    ?…1ÍÎ!ˆ‰ˆÏ     B\",‡" [last-command m-com vip-d-com val arg com reg vip-use-register nil vip-undo vip-undo-more vip-P-val 3 error "No previous command to repeat." funcall] 7))
  326.  
  327. (defun vip-special-prefix-com (char) "\
  328. This command is invoked interactively by the key sequence #<char>" (byte-code "ÂUƒà   `^    `]\"‚JÄUƒ\"Å    `^    `]\"‚JÆUƒ1Ç    !ˆÈ ‚JÉUƒ@Ç    !ˆÊ ‚JËU…JÌ    `\"‡" [char vip-com-point 99 downcase-region 67 upcase-region 103 set-mark vip-global-execute 113 vip-quote-region 115 spell-region] 9))
  329.  
  330. (defun vip-undo nil "\
  331. Undo previous change." (interactive) (byte-code "ÁˆÂÃ!ˆÄ ˆÅÆ!ˆÇ‰‡" [this-command nil message "undo!" undo-start undo-more 2 vip-undo] 5))
  332.  
  333. (defun vip-undo-more nil "\
  334. Continue undoing previous changes." (byte-code "ÁÂ!ˆÃÄ!ˆÅ‰‡" [this-command message "undo more!" undo-more 1 vip-undo] 4))
  335.  
  336. (defun vip-string-tail (str) (byte-code "?†    ÂÃ\"ƒÁ‚ÄÁO‡" [str nil string= "" 1] 4))
  337.  
  338. (defun vip-yank-defun nil (byte-code "À ˆÁ` \"‡" [mark-defun copy-region-as-kill mark] 5))
  339.  
  340. (defun vip-enlarge-region (beg end) "\
  341. Enlarge region between BEG and END." (byte-code "    WƒbˆÂ    !‚    bˆÂ!ˆÃ ˆÄ ˆm?†#n?…)ÅÆ!ˆÃ ˆ    V…5Ä ‡" [beg end set-mark beginning-of-line exchange-point-and-mark next-line 1] 8))
  342.  
  343. (defun vip-global-execute nil "\
  344. Call last keyboad macro for each line in the region." (byte-code "`À V…    Á ˆÂ ˆÃ ˆ`À W…$ÄÅ!ˆÂ ˆÃ ˆ‚‡" [mark exchange-point-and-mark beginning-of-line call-last-kbd-macro forward-line 1] 10))
  345.  
  346. (defun vip-quote-region nil "\
  347. Quote region by inserting the user supplied string at the beginning of
  348. each line in the region." (byte-code "ÂÃÄ\"!Å    Æ\"ƒ‚    )‰ˆÇ`È \"ˆ`È V…&É ˆcˆÊ ˆËÌ!ˆ`È W…9n…IcˆÊ ˆËÌ!ˆ‚1‡" [vip-quote-string str vip-read-string format "quote string (default \"%s\"): " string= "" vip-enlarge-region mark exchange-point-and-mark beginning-of-line forward-line 1] 14))
  349.  
  350. (defun vip-end-with-a-newline-p (string) "\
  351. Check if the string ends with a newline." (byte-code "ÂÃ\"†        GSHÄU‡" [text string string= "" 10] 3))
  352.  
  353. (defun vip-read-string (prompt &optional init) (byte-code "à   !‰ˆÄ    ÅÆ#ˆÄ    ÇÈ#ˆÄ    ÉÊ#ˆËÌÍΏˆ‰ˆ
  354. )‡" [save-minibuffer-local-map minibuffer-local-map str copy-keymap define-key "" backward-char "" backward-word "" exit-minibuffer nil conditions (byte-code "à   
  355. \"‰‡" [str prompt init read-string] 3) ((quit (byte-code "    ‰ˆÃÄÂ\"‡" [minibuffer-local-map save-minibuffer-local-map nil signal quit] 3)))] 7))
  356.  
  357. (defun vip-repeat-insert-command nil "\
  358. This function is called when mode changes from insertion mode to
  359. vi command mode.  It will repeat the insertion command if original insertion
  360. command was invoked with argument > 1." (byte-code "    @    A@
  361. …
  362. ÄV…#
  363. SÅE‰ˆÆÃ!ˆ
  364. ÅE‰*‡" [i-com vip-d-com val nil 1 114 vip-repeat] 4))
  365.  
  366. (defun vip-insert (arg) "\
  367. " (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆ
  368. ƒ, ÊV…(Ë ˆ S‰ˆ‚)‚.Ì *‡" [val arg com vip-d-com count nil vip-p-val vip-getcom vip-insert 114 0 yank vip-change-mode-to-insert] 6))
  369.  
  370. (defun vip-append (arg) "\
  371. Append after point." (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆl?…Ê ˆË
  372. É\"ƒ7 ÌV…3Í ˆ S‰ˆ‚\")‚9Π*‡" [val arg com vip-d-com count nil vip-p-val vip-getcom vip-append 114 forward-char equal 0 yank vip-change-mode-to-insert] 8))
  373.  
  374. (defun vip-Append (arg) "\
  375. Append at end of line." (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆÊ ˆË
  376. É\"ƒ2 ÌV….Í ˆ S‰ˆ‚)‚4Π*‡" [val arg com vip-d-com count nil vip-p-val vip-getcom vip-Append 114 end-of-line equal 0 yank vip-change-mode-to-insert] 8))
  377.  
  378. (defun vip-Insert (arg) "\
  379. Insert before first non-white." (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆÊ ˆË
  380. É\"ƒ2 ÌV….Í ˆ S‰ˆ‚)‚4Π*‡" [val arg com vip-d-com count nil vip-p-val vip-getcom vip-Insert 114 back-to-indentation equal 0 yank vip-change-mode-to-insert] 8))
  381.  
  382. (defun vip-open-line (arg) "\
  383. Open line below." (interactive "P") (byte-code "LjȠ   !É    !ÊËE‰ˆÌ Í
  384. Ë\"ƒAÎV…=Ï ˆÐÑ!ˆ…1 jˆÒ ˆS‰ˆ‚)‚RÏ ˆÐÑ!ˆ…O jˆÓ )*‡" [val arg com vip-d-com col count vip-open-with-indent nil vip-p-val vip-getcom vip-open-line 114 current-indentation equal 0 end-of-line newline 1 yank vip-change-mode-to-insert] 11))
  385.  
  386. (defun vip-Open-line (arg) "\
  387. Open line above." (interactive "P") (byte-code "LjȠ   !É    !ÊËE‰ˆÌ Í
  388. Ë\"ƒAÎV…=Ï ˆÐÑ!ˆ…1 jˆÒ ˆS‰ˆ‚)‚RÏ ˆÐÑ!ˆ…O jˆÓ )*‡" [val arg com vip-d-com col count vip-open-with-indent nil vip-p-val vip-getcom vip-Open-line 114 current-indentation equal 0 beginning-of-line open-line 1 yank vip-change-mode-to-insert] 11))
  389.  
  390. (defun vip-open-line-at-point (arg) "\
  391. Open line at point." (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆÊ
  392. É\"ƒ3 ËV…/ÌÍ!ˆÎ ˆ S‰ˆ‚)‚9ÌÍ!ˆÏ *‡" [val arg com vip-d-com count nil vip-p-val vip-getcom vip-open-line-at-point 114 equal 0 open-line 1 yank vip-change-mode-to-insert] 8))
  393.  
  394. (defun vip-substitute (arg) "\
  395. Substitute characters." (interactive "P") (byte-code "ĈŠ   !Æ    !ŠÇ`!ˆÈ!ˆÉ
  396. Ê\"ƒ\"ËÌ `\"‚'ÍÌ `\")ˆÎÊE‰*‡" [val arg com vip-d-com nil vip-p-val vip-getcom set-mark forward-char equal 114 vip-change-subr mark vip-change vip-substitute] 12))
  397.  
  398. (defun vip-substitute-line (arg) "\
  399. Substitute lines." (interactive "p") (byte-code "ÁˆÂÃB!‡" [arg nil vip-line 67] 3))
  400.  
  401. (defun vip-line (arg) (byte-code "    @    AÄ `\"ˆÅS!ˆÆÇ
  402. #*‡" [val arg com vip-com-point move-marker next-line vip-execute-com vip-line] 6))
  403.  
  404. (defun vip-yank-line (arg) "\
  405. Yank ARG lines (in vi's sense)" (interactive "P") (byte-code "ˆà   !ÄÅB!)‡" [val arg nil vip-p-val vip-line 89] 4))
  406.  
  407. (defun vip-region (arg) (interactive "P") (byte-code "ĈŠ   !Æ    !Ç `\"ˆÈ ˆÉÊ
  408. #*‡" [val arg com vip-com-point nil vip-P-val vip-getcom move-marker exchange-point-and-mark vip-execute-com vip-region] 8))
  409.  
  410. (defun vip-Region (arg) (interactive "P") (byte-code "ĈŠ   !Æ    !Ç `\"ˆÈ ˆÉÊ
  411. #*‡" [val arg com vip-com-point nil vip-P-val vip-getCom move-marker exchange-point-and-mark vip-execute-com vip-Region] 8))
  412.  
  413. (defun vip-replace-char (arg) "\
  414. Replace the following ARG chars by the character read." (interactive "P") (byte-code "ňƠ   !Ç    !ÈÉE‰ˆÊË
  415. É\"ƒ ‚r\"*‡" [val arg com vip-d-com vip-d-char nil vip-p-val vip-getcom vip-replace-char 114 vip-replace-char-subr equal] 6))
  416.  
  417. (defun vip-replace-char-subr (char arg) (byte-code "ÅÁ\"ˆ ‰ˆÆVƒ‚[ ÆV…' cˆ S‰ˆ‚)ˆÇ!‡" [arg t vip-d-char char count delete-char 0 backward-char] 4))
  418.  
  419. (defun vip-replace-string nil "\
  420. Replace string.  If you supply null string as the string to be replaced,
  421. the query replace mode will toggle between string replace and regexp replace." (interactive) (byte-code "ˆÂà   ƒÄ‚Å!‰ˆÆÇ\"ƒ/    ?‰ˆÈÉÊ    ƒ)˂*Ì\"!‚H    ƒ?ÍÃÉÎ\"!\"‚HÏÃÉÐ\"!\")‡" [str vip-re-replace nil vip-read-string "Replace regexp: " "Replace string: " string= "" message format "Replace mode changed to %s." "regexp replace" "string replace" replace-regexp "Replace regexp \"%s\" with: " replace-string "Replace \"%s\" with: "] 13))
  422.  
  423. (defun vip-forward-char (arg) "\
  424. Move point right ARG characters (left if ARG negative).On reaching end
  425. of buffer, stop and signal error." (interactive "P") (byte-code "ĈŠ   !Æ    !
  426. …Ç `\"ˆÈ!ˆ
  427. … ÉÊ
  428. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker forward-char vip-execute-com vip-forward-char] 8))
  429.  
  430. (defun vip-backward-char (arg) "\
  431. Move point left ARG characters (right if ARG negative).  On reaching
  432. beginning of buffer, stop and signal error." (interactive "P") (byte-code "ĈŠ   !Æ    !
  433. …Ç `\"ˆÈ!ˆ
  434. … ÉÊ
  435. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker backward-char vip-execute-com vip-backward-char] 8))
  436.  
  437. (defun vip-forward-word (arg) "\
  438. Forward word." (interactive "P") (byte-code "ĈŠ   !Æ    !
  439. …Ç `\"ˆÈ!ˆÉÊ!ˆ
  440. …Q
  441. ËU†)
  442. Ë[U…3ÌÍ!ˆÈÍ!ˆ
  443. ÎU†=
  444. ÏU…KÌÍ!ˆÈÍ!ˆÉÐ!ˆÑÒ
  445. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker forward-word skip-chars-forward "     
  446. " 99 backward-word 1 100 121 "     " vip-execute-com vip-forward-word] 14))
  447.  
  448. (defun vip-end-of-word (arg) "\
  449. Move point to end of current word." (interactive "P") (byte-code "ĈŠ   !Æ    !
  450. …Ç `\"ˆÈ ˆÉ!ˆÊ ˆ
  451. …)È ˆËÌ
  452. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker forward-char forward-word backward-char vip-execute-com vip-end-of-word] 11))
  453.  
  454. (defun vip-backward-word (arg) "\
  455. Backward word." (interactive "P") (byte-code "ĈŠ   !Æ    !
  456. …Ç `\"ˆÈ!ˆ
  457. … ÉÊ
  458. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker backward-word vip-execute-com vip-backward-word] 8))
  459.  
  460. (defun vip-forward-Word (arg) "\
  461. Forward word delimited by white character." (interactive "P") (byte-code "ĈƠ   !Ç    !
  462. …È `\"ˆÉÊÄÅ$ˆ
  463. …P
  464. ËU†(
  465. Ë[U…2ÌÍ!ˆÎÍ!ˆ
  466. ÏU†<
  467. ÐU…JÌÍ!ˆÎÍ!ˆÑÒ!ˆÓÔ
  468. #*‡" [val arg com vip-com-point nil t vip-p-val vip-getcom move-marker re-search-forward "[^     
  469. ]*[     
  470. ]+" 99 backward-word 1 forward-word 100 121 skip-chars-forward "     " vip-execute-com vip-forward-Word] 13))
  471.  
  472. (defun vip-end-of-Word (arg) "\
  473. Move forward to end of word delimited by white character." (interactive "P") (byte-code "ĈƠ   !Ç    !
  474. …È `\"ˆÉ ˆÊËÄÅ$…!Ì ˆ
  475. ….É ˆÍÎ
  476. #*‡" [val arg com vip-com-point nil t vip-p-val vip-getcom move-marker forward-char re-search-forward "[^     
  477. ]+" backward-char vip-execute-com vip-end-of-Word] 11))
  478.  
  479. (defun vip-backward-Word (arg) "\
  480. Backward word delimited by white character." (interactive "P") (byte-code "ĈƠ   !Ç    !
  481. …È `\"ˆÉÊÄÅ$ƒ!Ë ‚#ebˆ
  482. …-ÌÍ
  483. #*‡" [val arg com vip-com-point nil t vip-p-val vip-getcom move-marker re-search-backward "[     
  484. ]+[^     
  485. ]+" forward-char vip-execute-com vip-backward-Word] 9))
  486.  
  487. (defun vip-beginning-of-line (arg) "\
  488. Go to beginning of line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  489. …Ç `\"ˆÈ!ˆ
  490. … ÉÊ
  491. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker beginning-of-line vip-execute-com vip-beginning-of-line] 8))
  492.  
  493. (defun vip-bol-and-skip-white (arg) "\
  494. Beginning of line at first non-white character." (interactive "P") (byte-code "ĈŠ   !Æ    !
  495. …Ç `\"ˆÈ ˆ
  496. …ÉÊ
  497. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker back-to-indentation vip-execute-com vip-bol-and-skip-white] 8))
  498.  
  499. (defun vip-goto-eol (arg) "\
  500. Go to end of line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  501. …Ç `\"ˆÈ!ˆ
  502. … ÉÊ
  503. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker end-of-line vip-execute-com vip-goto-eol] 8))
  504.  
  505. (defun vip-next-line (arg) "\
  506. Go to next line." (interactive "P") (byte-code "ňƠ   !Ç    !
  507. …È `\"ˆÉ!ˆÊ‰ˆ
  508. …$ËÌ
  509. #*‡" [val arg com vip-com-point this-command nil vip-p-val vip-getCom move-marker next-line-internal next-line vip-execute-com vip-next-line] 8))
  510.  
  511. (defun vip-next-line-at-bol (arg) "\
  512. Next line at beginning of line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  513. …Ç `\"ˆÈ!ˆÉ ˆ
  514. …#ÊË
  515. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker next-line back-to-indentation vip-execute-com vip-next-line-at-bol] 9))
  516.  
  517. (defun vip-previous-line (arg) "\
  518. Go to previous line." (interactive "P") (byte-code "ňƠ   !Ç    !
  519. …È `\"ˆÉ[!ˆÊ‰ˆ
  520. …%ËÌ
  521. #*‡" [val arg com vip-com-point this-command nil vip-p-val vip-getCom move-marker next-line previous-line vip-execute-com vip-previous-line] 8))
  522.  
  523. (defun vip-previous-line-at-bol (arg) "\
  524. Previous line at beginning of line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  525. …Ç `\"ˆÈ[!ˆÉ ˆ
  526. …$ÊË
  527. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker next-line back-to-indentation vip-execute-com vip-previous-line] 9))
  528.  
  529. (defun vip-change-to-eol (arg) "\
  530. Change to end of line." (interactive "P") (byte-code "ÁˆÂÃB!‡" [arg nil vip-goto-eol 99] 3))
  531.  
  532. (defun vip-kill-line (arg) "\
  533. Delete line." (interactive "P") (byte-code "ÁˆÂÃB!‡" [arg nil vip-goto-eol 100] 3))
  534.  
  535. (defun vip-goto-line (arg) "\
  536. Go to ARG's line.  Without ARG go to end of buffer." (interactive "P") (byte-code "ĈŠ   !Æ    !Ç `\"ˆÈ`!ˆ?ƒdb‚$ebˆÉS!ˆÊ ˆ
  537. …1ËÌ
  538. #*‡" [val arg com vip-com-point nil vip-P-val vip-getCom move-marker set-mark forward-line back-to-indentation vip-execute-com vip-goto-line] 10))
  539.  
  540. (defun vip-find-char (arg char forward offset) "\
  541. Find ARG's occurence of CHAR on the current line.  If FORWARD then
  542. search is forward, otherwise backward.  OFFSET is used to adjust point
  543. after search." (byte-code "    ƒ‚
  544. [ÄŠŒÇVƒ-Èlƒ ÉÊ!‚!`ËÌ!ˆÍ ˆ`\"‚>Ènƒ8ÉÊ!‚9`Í ˆ`\"ˆÇVƒKeTb‚MdbˆÄÎÏ!ÄÇ$)ˆ`‰ˆÇV…g
  545. dU†sÇW…s
  546. eU…yÉÊ!))ˆ
  547. ÇVƒƒŒÐ‚Ñ‚šƒ™Ì‚šÇ\\b*‡" [arg forward point case-fold-search nil char offset 0 narrow-to-region error "" next-line 1 beginning-of-line search-forward char-to-string -2 -1] 13))
  548.  
  549. (defun vip-find-char-forward (arg) "\
  550. Find char on the line.  If called interactively read the char to find
  551. from the terminal, and if called from vip-repeat, the char last used is
  552. used.  This behaviour is controlled by the sign of prefix numeric value." (interactive "P") (byte-code "Ljʠ   !Ë    !ÌVƒrÅlj‚[‰ˆ
  553. …)Í`\"ˆÎÊ    !ÌVƒ8 ‚:    ÅÇ$ˆ[‰ˆ
  554. …T ‰    ˆÏ ˆÐÑ
  555. #*‡" [val arg com vip-f-char vip-f-forward t vip-f-offset nil vip-com-point vip-F-char vip-p-val vip-getcom 0 move-marker vip-find-char forward-char vip-execute-com vip-find-char-forward] 10))
  556.  
  557. (defun vip-goto-char-forward (arg) "\
  558. Go up to char ARG forward on line." (interactive "P") (byte-code "Ɉʠ   !Ë    !ÌVƒrÅʼn‚[‰ˆ
  559. …)Í`\"ˆÎÊ    !ÌVƒ8 ‚:ÅÅ$ˆ[‰ˆ
  560. …T ‰ˆÏ ˆÐÑ
  561. #*‡" [val arg com vip-f-char vip-f-forward t vip-f-offset vip-com-point vip-F-char nil vip-p-val vip-getcom 0 move-marker vip-find-char forward-char vip-execute-com vip-goto-char-forward] 10))
  562.  
  563. (defun vip-find-char-backward (arg) "\
  564. Find char ARG on line backward." (interactive "P") (byte-code "ňɠ   !Ê    !ËVƒrÅʼn‚[‰ˆ
  565. …)Ì`\"ˆÍÉ    !ËVƒ8 ‚:ÅÅ$ˆ[‰ˆ
  566. …Q ‰ˆÎÏ
  567. #*‡" [val arg com vip-f-char vip-f-forward nil vip-f-offset vip-com-point vip-F-char vip-p-val vip-getcom 0 move-marker vip-find-char vip-execute-com vip-find-char-backward] 9))
  568.  
  569. (defun vip-goto-char-backward (arg) "\
  570. Go up to char ARG backward on line." (interactive "P") (byte-code "ňʠ   !Ë    !ÌVƒrÅlj‚[‰ˆ
  571. …)Í`\"ˆÎÊ    !ÌVƒ8 ‚:    ÅÇ$ˆ[‰ˆ
  572. …Q ‰    ˆÏÐ
  573. #*‡" [val arg com vip-f-char vip-f-forward nil vip-f-offset t vip-com-point vip-F-char vip-p-val vip-getcom 0 move-marker vip-find-char vip-execute-com vip-goto-char-backward] 9))
  574.  
  575. (defun vip-repeat-find (arg) "\
  576. Repeat previous find command." (interactive "P") (byte-code "LjȠ   !É    !
  577. …Ê `\"ˆË $ˆ
  578. …+…%Ì ˆÍÎ
  579. #*‡" [val arg com vip-com-point vip-f-char vip-f-forward vip-f-offset nil vip-p-val vip-getcom move-marker vip-find-char forward-char vip-execute-com vip-repeat-find] 9))
  580.  
  581. (defun vip-repeat-find-opposite (arg) "\
  582. Repeat previous find command in the opposite direction." (interactive "P") (byte-code "LjȠ   !É    !
  583. …Ê `\"ˆË ?$ˆ
  584. …,…&Ì ˆÍÎ
  585. #*‡" [val arg com vip-com-point vip-f-char vip-f-forward vip-f-offset nil vip-p-val vip-getcom move-marker vip-find-char forward-char vip-execute-com vip-repeat-find-opposite] 9))
  586.  
  587. (defun vip-other-window (arg) "\
  588. Switch to other window." (interactive "p") (byte-code "ˆÃ!ˆ    Ä=?†ÅÆp!Ç\"†È ‡" [arg vip-current-mode nil other-window emacs-mode string= buffer-name " *Minibuf-1*" vip-change-mode-to-vi] 5))
  589.  
  590. (defun vip-window-top (arg) "\
  591. Go to home window line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  592. …Ç `\"ˆÈS!ˆ
  593. …!ÉÊ
  594. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker move-to-window-line vip-execute-com vip-window-top] 8))
  595.  
  596. (defun vip-window-middle (arg) "\
  597. Go to middle window line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  598. …Ç `\"ˆÈÉÊ SË\"S\\!ˆ
  599. …(ÌÍ
  600. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker move-to-window-line / window-height 2 vip-execute-com vip-window-middle] 10))
  601.  
  602. (defun vip-window-bottom (arg) "\
  603. Go to last window line." (interactive "P") (byte-code "ĈŠ   !Æ    !
  604. …Ç `\"ˆÈ[!ˆ
  605. …!ÉÊ
  606. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker move-to-window-line vip-execute-com vip-window-bottom] 8))
  607.  
  608. (defun vip-line-to-top (arg) "\
  609. Put current line on the home line." (interactive "p") (byte-code "ÁˆÂS!‡" [arg nil recenter] 2))
  610.  
  611. (defun vip-line-to-middle (arg) "\
  612. Put current line on the middle line." (interactive "p") (byte-code "ÁˆÂSÃÄ SÅ\"\\!‡" [arg nil recenter / window-height 2] 6))
  613.  
  614. (defun vip-line-to-bottom (arg) "\
  615. Put current line on the last line." (interactive "p") (byte-code "ÁˆÂàTZ!‡" [arg nil recenter window-height] 4))
  616.  
  617. (defun vip-paren-match (arg) "\
  618. Go to the matching parenthesis." (interactive "P") (byte-code "ÈŠ   !Æ    !ƒ<    ÇV†    ÈWƒÉÊ!‚9dËVƒ.ÌÍdÎ\"    \"‚5ÍÌd    \"Î\"bˆÏ ‚…ÐÑ!ƒ`…JÒ
  619. `\"ˆÓÈ!ˆƒ[ÔÕÃ#‚]Ö ‚…Ð×!ƒ‚Ø ˆ…qÒ
  620. `\"ˆÙÈ!ˆ…ÔÕÃ#‚…ÉÚ!)‡" [com arg vip-com-point nil t vip-getcom numberp 99 1 error "Prefix must be between 1 and 99." 80000 * / 100 back-to-indentation looking-at "[([{]" move-marker forward-sexp vip-execute-com vip-paren-match backward-char "[])}]" forward-char backward-sexp ""] 21))
  621.  
  622. (defun vip-forward-sentence (arg) "\
  623. Forward sentence." (interactive "P") (byte-code "ĈŠ   !Æ    !
  624. …Ç `\"ˆÈ!ˆ
  625. … ÉÊÄ
  626. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker forward-sentence vip-execute-com vip-forward-sentence] 8))
  627.  
  628. (defun vip-backward-sentence (arg) "\
  629. Backward sentence." (interactive "P") (byte-code "ĈŠ   !Æ    !
  630. …Ç `\"ˆÈ!ˆ
  631. … ÉÊÄ
  632. #*‡" [val arg com vip-com-point nil vip-p-val vip-getcom move-marker backward-sentence vip-execute-com vip-backward-sentence] 8))
  633.  
  634. (defun vip-forward-paragraph (arg) "\
  635. Forward paragraph." (interactive "P") (byte-code "ĈŠ   !Æ    !
  636. …Ç `\"ˆÈ!ˆ
  637. … ÉÊÄ
  638. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker forward-paragraph vip-execute-com vip-forward-paragraph] 8))
  639.  
  640. (defun vip-backward-paragraph (arg) "\
  641. Backward paragraph." (interactive "P") (byte-code "ĈŠ   !Æ    !
  642. …Ç `\"ˆÈ!ˆ
  643. … ÉÊÄ
  644. #*‡" [val arg com vip-com-point nil vip-p-val vip-getCom move-marker backward-paragraph vip-execute-com vip-backward-paragraph] 8))
  645.  
  646. (defun vip-scroll (arg) "\
  647. Scroll to next screen." (interactive "p") (byte-code "ÁˆÂVƒÂV…àˆS‰ˆ‚‚-ÂV…-Ä ˆT‰ˆ‚‡" [arg nil 0 scroll-up scroll-down] 5))
  648.  
  649. (defun vip-scroll-back (arg) "\
  650. Scroll to previous screen." (interactive "p") (byte-code "ÁˆÂ[!‡" [arg nil vip-scroll] 2))
  651.  
  652. (defun vip-scroll-down (arg) "\
  653. Scroll up half screen." (interactive "P") (byte-code "Áˆ?ƒÂÃÄ Å\"!‚Â!‡" [arg nil scroll-down / window-height 2] 5))
  654.  
  655. (defun vip-scroll-down-one (arg) "\
  656. Scroll up one line." (interactive "p") (byte-code "ÁˆÂ!‡" [arg nil scroll-down] 2))
  657.  
  658. (defun vip-scroll-up (arg) "\
  659. Scroll down half screen." (interactive "P") (byte-code "Áˆ?ƒÂÃÄ Å\"!‚Â!‡" [arg nil scroll-up / window-height 2] 5))
  660.  
  661. (defun vip-scroll-up-one (arg) "\
  662. Scroll down one line." (interactive "p") (byte-code "ÁˆÂ!‡" [arg nil scroll-up] 2))
  663.  
  664. (defun vip-buffer-in-two-windows nil "\
  665. Show current buffer in two windows." (interactive) (byte-code "ÀˆÁ ˆÂÀ!‡" [nil delete-other-windows split-window-vertically] 3))
  666.  
  667. (defun vip-search-forward (arg) "\
  668. Search a string forward.  ARG is used to find the ARG's occurence
  669. of the string.  Default is vanilla search.  Search mode can be toggled by
  670. giving null search string." (interactive "P") (byte-code "Ȉɠ   !Ê    !Ä˃̂Í!‰ˆÎÏ\"ƒ;?‰ˆÐÑÒƒ5ӂ6Ô\"!‚QÕÄ#ˆ
  671. …QÖ× \"ˆØÙ
  672. #*‡" [val arg com vip-s-forward t vip-s-string vip-re-search vip-com-point nil vip-P-val vip-getcom vip-read-string "RE-/" "/" string= "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search move-marker mark vip-execute-com vip-search-next] 13))
  673.  
  674. (defun vip-search-backward (arg) "\
  675. Search a string backward.  ARG is used to find the ARG's occurence
  676. of the string.  Default is vanilla search.  Search mode can be toggled by
  677. giving null search string." (interactive "P") (byte-code "ĈȠ   !É    !Äʃ˂Ì!‰ˆÍÎ\"ƒ;?‰ˆÏÐу5҂6Ó\"!‚QÔÄ#ˆ
  678. …QÕÖ \"ˆ×Ø
  679. #*‡" [val arg com vip-s-forward nil vip-s-string vip-re-search vip-com-point vip-P-val vip-getcom vip-read-string "RE-?" "?" string= "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search move-marker mark vip-execute-com vip-search-next] 13))
  680.  
  681. (defun vip-search (string forward arg &optional no-offset init-point) "\
  682. (STRING FORWARD COUNT &optional NO-OFFSET) Search COUNT's occurrence of
  683. STRING.  Search will be forward if FORWARD, otherwise backward." (byte-code "Ë    !Ì    !Í    !??    †`
  684. ƒ(ÎÏЏ‚,ÎÑҏ.‡" [val arg com null-arg offset no-offset case-fold-search vip-case-fold-search start-point init-point forward vip-p-val vip-getcom vip-P-val conditions (byte-code "…m?… Æ ˆ    ƒÇ
  685. Ãà $ˆÈ
  686. !‚'É
  687. Ãà $ˆÊ
  688. !ˆË!‡" [offset vip-re-search string nil val start-point forward-char re-search-forward re-search-backward search-forward search-backward push-mark] 8) ((search-failed (byte-code "…    ƒebˆÈ
  689. É BÅ%‚\"bˆÊËA\"‡" [null-arg vip-search-wrap-around string forward com t start-point conditions vip-search 1 signal search-failed] 6))) (byte-code "ƒÅ    Â $‚Æ    Â $ˆÇ !‡" [vip-re-search string nil val start-point re-search-backward search-backward push-mark] 6) ((search-failed (byte-code "…    ƒdbˆÈ
  690. É BÅ%‚\"bˆÊËA\"‡" [null-arg vip-search-wrap-around string forward com t start-point conditions vip-search 1 signal search-failed] 6)))] 9))
  691.  
  692. (defun vip-search-next (arg) "\
  693. Repeat previous search." (interactive "P") (byte-code "ňƠ   !Ç    ! ?…ÈÉ!ˆÊ     #ˆ
  694. …\"ËÌ
  695. #*‡" [val arg com vip-s-string vip-s-forward nil vip-p-val vip-getcom error "No previous search string." vip-search vip-execute-com vip-search-next] 8))
  696.  
  697. (defun vip-search-Next (arg) "\
  698. Repeat previous search in the reverse direction." (interactive "P") (byte-code "ňƠ   !Ç    ! ?…ÈÉ!ˆÊ ?    #ˆ
  699. …#ËÌ
  700. #*‡" [val arg com vip-s-string vip-s-forward nil vip-p-val vip-getcom error "No previous search string." vip-search vip-execute-com vip-search-Next] 8))
  701.  
  702. (defun vip-switch-to-buffer nil "\
  703. Switch to buffer in the current window." (interactive) (byte-code "ÁˆÁÂÃÄÅÆp!!\"!‰ˆÇ!ˆÈ )‡" [buffer nil read-buffer format "switch to buffer (%s): " buffer-name other-buffer switch-to-buffer vip-change-mode-to-vi] 7))
  704.  
  705. (defun vip-switch-to-buffer-other-window nil "\
  706. Switch to buffer in another window." (interactive) (byte-code "ÁˆÁÂÃÄÅÆp!!\"!‰ˆÇ!ˆÈ )‡" [buffer nil read-buffer format "Switch to buffer (%s): " buffer-name other-buffer switch-to-buffer-other-window vip-change-mode-to-vi] 7))
  707.  
  708. (defun vip-kill-buffer nil "\
  709. Kill a buffer." (interactive) (byte-code "ˆÂÂÃÄÅÁp!\"!‰ˆ    ?ƒp‚Æ    !‰ˆ?…)ÇÈ    \"ˆÉ!?†4ÊË!ƒ=Ì!‚@ÇÍ!*‡" [buffer buffer-name nil read-buffer format "Kill buffer (%s): " get-buffer error "Buffer %s nonexistent." buffer-modified-p y-or-n-p "Buffer is modified, are you sure? " kill-buffer "Buffer not killed."] 10))
  710.  
  711. (defun vip-find-file nil "\
  712. Visit file in the current window." (interactive) (byte-code "ÁˆÁÂÃ!‰ˆÄÅ!!ˆÆ )‡" [file nil read-file-name "visit file: " switch-to-buffer find-file-noselect vip-change-mode-to-vi] 5))
  713.  
  714. (defun vip-find-file-other-window nil "\
  715. Visit file in another window." (interactive) (byte-code "ÁˆÁÂÃ!‰ˆÄÅ!!ˆÆ )‡" [file nil read-file-name "Visit file: " switch-to-buffer-other-window find-file-noselect vip-change-mode-to-vi] 5))
  716.  
  717. (defun vip-info-on-file nil "\
  718. Give information of the file associated to the current buffer." (interactive) (byte-code "ÀˆÁÂàƒà‚ÄÅe`\"TÅed\"T$‡" [nil message "\"%s\" line %d of %d" buffer-file-name "" count-lines] 10))
  719.  
  720. (defun vip-yank (text) "\
  721. yank TEXT silently." (byte-code "ŠÁ`!ˆcˆÂ )ˆÃÄ!‡" [text vip-push-mark-silent exchange-point-and-mark skip-chars-forward "     "] 4))
  722.  
  723. (defun vip-put-back (arg) "\
  724. Put back after point/below line." (interactive "P") (byte-code "ƈɠ   ! ƒ#Ê X… ËXƒ ÊZ 8‚ Ì !‚% @
  725. ?…A ƒ> ƉˆÍÎ\")‚AÍÏ!ˆÆ‰ˆÐ
  726. !ƒUÑÒ!ˆÓ ‚al?…\\m?…aÔ ˆÕÆ F‰ˆÖV…ƒ×
  727. !ˆS‰ˆ‚n)*‡" [val arg text vip-use-register kill-ring-yank-pointer reg nil vip-d-com count vip-p-val 49 57 get-register error "Nothing in register %c" "" vip-end-with-a-newline-p next-line 1 beginning-of-line forward-char vip-put-back 0 vip-yank] 12))
  728.  
  729. (defun vip-Put-back (arg) "\
  730. Put back at point/above line." (interactive "P") (byte-code "ƈɠ   ! ƒ#Ê X… ËXƒ ÊZ 8‚ Ì !‚% @
  731. ?…A ƒ> ƉˆÍÎ\")‚AÍÏ!ˆÆ‰ˆÐ
  732. !…NÑ ˆÒÆ F‰ˆÓV…pÔ
  733. !ˆS‰ˆ‚[)*‡" [val arg text vip-use-register kill-ring-yank-pointer reg nil vip-d-com count vip-p-val 49 57 get-register error "Nothing in register %c" "" vip-end-with-a-newline-p beginning-of-line vip-Put-back 0 vip-yank] 10))
  734.  
  735. (defun vip-delete-char (arg) "\
  736. Delete character." (interactive "P") (byte-code "ÈƠ   !ÇÃE‰ˆ …6È X… ÉXƒ*Ê Ë\\``ZÃ$‚2Ì ``ZÃ$ˆÃ‰ˆÍÅ\")‡" [val arg vip-d-com nil vip-use-register t vip-p-val vip-delete-char 65 90 vip-append-to-register 32 copy-to-register delete-char] 7))
  737.  
  738. (defun vip-delete-backward-char (arg) "\
  739. Delete previous character." (interactive "P") (byte-code "ÈƠ   !ÇÃE‰ˆ …6È X… ÉXƒ*Ê Ë\\``\\Ã$‚2Ì ``\\Ã$ˆÃ‰ˆÍÅ\")‡" [val arg vip-d-com nil vip-use-register t vip-p-val vip-delete-backward-char 65 90 vip-append-to-register 32 copy-to-register delete-backward-char] 7))
  740.  
  741. (defun vip-join-lines (arg) "\
  742. Join this line to next, if ARG is nil.  Otherwise, join ARG lines" (interactive "*P") (byte-code "ÈŠ   !ÆÃE‰ˆ?ƒǂS ÈV…<É ˆm?…3ÊÇ!ˆË``S\"ˆÌ ˆ S‰ˆ‚))‡" [val arg vip-d-com nil count vip-P-val vip-join-lines 1 0 end-of-line forward-line delete-region fixup-whitespace] 8))
  743.  
  744. (defun vip-change (beg end) (byte-code "ÃÄÅÆ    
  745. \"\"!‰ˆÇ    
  746. \"‡" [c-string beg end vip-read-string format "%s => " buffer-substring vip-change-subr] 6))
  747.  
  748. (defun vip-change-subr (beg end) (byte-code "…Æ    
  749. Ã$ˆÃ‰ˆÇ    
  750. \"ˆÈ‰ˆc‡" [vip-use-register beg end nil this-command c-string copy-to-register kill-region vip-change] 5))
  751.  
  752. (defun vip-query-replace nil "\
  753. Query replace.  If you supply null string as the string to be replaced,
  754. the query replace mode will toggle between string replace and regexp replace." (interactive) (byte-code "ˆÂà   ƒÄ‚Å!‰ˆÆÇ\"ƒ-    ?‰ˆÈÉ    ƒ(ʂ)Ë\"‚F    ƒ=ÌÃÍÎ\"!\"‚FÏÃÍÐ\"!\")‡" [str vip-re-query-replace nil vip-read-string "Query replace regexp: " "Query replace: " string= "" message "Query replace mode changed to %s." "regexp replace" "string replace" query-replace-regexp format "Query replace regexp \"%s\" with: " query-replace "Query replace \"%s\" with: "] 12))
  755.  
  756. (defun vip-mark-beginning-of-buffer nil (interactive) (byte-code "ÀˆÁ`!ˆebˆÂ ˆÃÄ!‡" [nil set-mark exchange-point-and-mark message "mark set at the beginning of buffer"] 4))
  757.  
  758. (defun vip-mark-end-of-buffer nil (interactive) (byte-code "ÀˆÁ`!ˆdbˆÂ ˆÃÄ!‡" [nil set-mark exchange-point-and-mark message "mark set at the end of buffer"] 4))
  759.  
  760. (defun vip-mark-point (char) (interactive "c") (byte-code "ˆÃX… ÄXƒÅÃÆZZ!‚SÇUƒ#È ‚SÉUƒ.Ê ‚SËUƒ9Ì ‚SÍUƒEÎÆ!‚SÏUƒPР‚SÑÒ!‡" [char t nil 97 122 point-to-register 1 60 vip-mark-beginning-of-buffer 62 vip-mark-end-of-buffer 46 push-mark 44 set-mark-command 68 mark-defun error ""] 8))
  761.  
  762. (defun vip-goto-mark (arg) "\
  763. Go to mark." (interactive "P") (byte-code "ÈrÄ
  764. !Å    Ã#*‡" [char com arg nil vip-getcom vip-goto-mark-subr] 5))
  765.  
  766. (defun vip-goto-mark-and-skip-white (arg) "\
  767. Go to mark and skip to first non-white on line." (interactive "P") (byte-code "ĈrÅ
  768. !Æ    Ã#*‡" [char com arg t nil vip-getCom vip-goto-mark-subr] 5))
  769.  
  770. (defun vip-goto-mark-subr (char com skip-white) (byte-code "ÇX…    ÈXƒVp
  771. …É `\"ˆÊÇËZZ!bˆ …&Ì ˆÍ ˆ
  772. …RΠ   p\"ƒEÏ ƒ>Ђ?ÑÅ
  773. #‚RÒ    !ˆ bˆÍ ˆÓÔ!)‚¡ ?…^ÕUƒy
  774. …iÉ `\"ˆÖ ˆ
  775. …vÏÑÅ
  776. #‚¡ …€×Uƒž
  777. …‹É `\"ˆÖ ˆÌ ˆ
  778. …›ÏÐÅ
  779. #‚¡ÓÔ!‡" [char buff com vip-com-point skip-white nil t 97 122 move-marker register-to-point 1 back-to-indentation vip-change-mode-to-vi equal vip-execute-com vip-goto-mark-and-skip-white vip-goto-mark switch-to-buffer error "" 96 exchange-point-and-mark 39] 19))
  780.  
  781. (defun vip-exchange-point-and-mark nil (interactive) (byte-code "ÀˆÁ ˆÂ ‡" [nil exchange-point-and-mark back-to-indentation] 3))
  782.  
  783. (defun vip-keyboard-quit nil "\
  784. Abort partially formed or running command." (interactive) (byte-code "ÁˆÁ‰ˆÂ ‡" [vip-use-register nil keyboard-quit] 2))
  785.  
  786. (defun vip-ctl-c-equivalent (arg) "\
  787. Emulate C-c in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-ctl-key-equivalent ""] 3))
  788.  
  789. (defun vip-ctl-x-equivalent (arg) "\
  790. Emulate C-x in Emacs mode." (interactive "P") (byte-code "ÁˆÂÃ\"‡" [arg nil vip-ctl-key-equivalent ""] 3))
  791.  
  792. (defun vip-ctl-key-equivalent (key arg) (byte-code "rÆX… ÇX…ÆÈZZ‰ˆ
  793. ‰ˆÉÊ ËÌÍ!##!)‡" [char prefix-arg arg vip-emacs-local-map global-map key 65 90 1 command-execute vip-get-editor-command format "%s%s" char-to-string] 9))
  794.  
  795. (defun vip-delete-backward-word (arg) "\
  796. Delete previous word." (interactive "p") (byte-code "ÁˆŠÂ`!ˆÃ!ˆÄ`Å \")‡" [arg nil set-mark backward-word delete-region mark] 6))
  797.  
  798. (set (quote vip-mode-map) (make-keymap))
  799.  
  800. (define-key vip-mode-map "" (quote beginning-of-line))
  801.  
  802. (define-key vip-mode-map "" (quote vip-scroll-back))
  803.  
  804. (define-key vip-mode-map "" (quote vip-ctl-c))
  805.  
  806. (define-key vip-mode-map "" (quote vip-scroll-up))
  807.  
  808. (define-key vip-mode-map "" (quote vip-scroll-up-one))
  809.  
  810. (define-key vip-mode-map "" (quote vip-scroll))
  811.  
  812. (define-key vip-mode-map "" (quote vip-keyboard-quit))
  813.  
  814. (define-key vip-mode-map "" (quote help-command))
  815.  
  816. (define-key vip-mode-map "" (quote vip-scroll-back))
  817.  
  818. (define-key vip-mode-map "" (quote vip-other-window))
  819.  
  820. (define-key vip-mode-map "" (quote vip-open-line-at-point))
  821.  
  822. (define-key vip-mode-map "" (quote vip-scroll-down))
  823.  
  824. (define-key vip-mode-map "" (quote vip-ctl-x))
  825.  
  826. (define-key vip-mode-map "" (quote vip-scroll-down-one))
  827.  
  828. (define-key vip-mode-map "" (quote vip-change-mode-to-emacs))
  829.  
  830. (define-key vip-mode-map "" (quote vip-ESC))
  831.  
  832. (define-key vip-mode-map " " (quote vip-scroll))
  833.  
  834. (define-key vip-mode-map "!" (quote vip-command-argument))
  835.  
  836. (define-key vip-mode-map "\"" (quote vip-command-argument))
  837.  
  838. (define-key vip-mode-map "#" (quote vip-command-argument))
  839.  
  840. (define-key vip-mode-map "$" (quote vip-goto-eol))
  841.  
  842. (define-key vip-mode-map "%" (quote vip-paren-match))
  843.  
  844. (define-key vip-mode-map "&" (quote vip-nil))
  845.  
  846. (define-key vip-mode-map "'" (quote vip-goto-mark-and-skip-white))
  847.  
  848. (define-key vip-mode-map "(" (quote vip-backward-sentence))
  849.  
  850. (define-key vip-mode-map ")" (quote vip-forward-sentence))
  851.  
  852. (define-key vip-mode-map "*" (quote call-last-kbd-macro))
  853.  
  854. (define-key vip-mode-map "+" (quote vip-next-line-at-bol))
  855.  
  856. (define-key vip-mode-map "," (quote vip-repeat-find-opposite))
  857.  
  858. (define-key vip-mode-map "-" (quote vip-previous-line-at-bol))
  859.  
  860. (define-key vip-mode-map "." (quote vip-repeat))
  861.  
  862. (define-key vip-mode-map "/" (quote vip-search-forward))
  863.  
  864. (define-key vip-mode-map "0" (quote vip-beginning-of-line))
  865.  
  866. (define-key vip-mode-map "1" (quote vip-digit-argument))
  867.  
  868. (define-key vip-mode-map "2" (quote vip-digit-argument))
  869.  
  870. (define-key vip-mode-map "3" (quote vip-digit-argument))
  871.  
  872. (define-key vip-mode-map "4" (quote vip-digit-argument))
  873.  
  874. (define-key vip-mode-map "5" (quote vip-digit-argument))
  875.  
  876. (define-key vip-mode-map "6" (quote vip-digit-argument))
  877.  
  878. (define-key vip-mode-map "7" (quote vip-digit-argument))
  879.  
  880. (define-key vip-mode-map "8" (quote vip-digit-argument))
  881.  
  882. (define-key vip-mode-map "9" (quote vip-digit-argument))
  883.  
  884. (define-key vip-mode-map ":" (quote vip-ex))
  885.  
  886. (define-key vip-mode-map ";" (quote vip-repeat-find))
  887.  
  888. (define-key vip-mode-map "<" (quote vip-command-argument))
  889.  
  890. (define-key vip-mode-map "=" (quote vip-command-argument))
  891.  
  892. (define-key vip-mode-map ">" (quote vip-command-argument))
  893.  
  894. (define-key vip-mode-map "?" (quote vip-search-backward))
  895.  
  896. (define-key vip-mode-map "@" (quote vip-nil))
  897.  
  898. (define-key vip-mode-map "A" (quote vip-Append))
  899.  
  900. (define-key vip-mode-map "B" (quote vip-backward-Word))
  901.  
  902. (define-key vip-mode-map "C" (quote vip-ctl-c-equivalent))
  903.  
  904. (define-key vip-mode-map "D" (quote vip-kill-line))
  905.  
  906. (define-key vip-mode-map "E" (quote vip-end-of-Word))
  907.  
  908. (define-key vip-mode-map "F" (quote vip-find-char-backward))
  909.  
  910. (define-key vip-mode-map "G" (quote vip-goto-line))
  911.  
  912. (define-key vip-mode-map "H" (quote vip-window-top))
  913.  
  914. (define-key vip-mode-map "I" (quote vip-Insert))
  915.  
  916. (define-key vip-mode-map "J" (quote vip-join-lines))
  917.  
  918. (define-key vip-mode-map "K" (quote vip-kill-buffer))
  919.  
  920. (define-key vip-mode-map "L" (quote vip-window-bottom))
  921.  
  922. (define-key vip-mode-map "M" (quote vip-window-middle))
  923.  
  924. (define-key vip-mode-map "N" (quote vip-search-Next))
  925.  
  926. (define-key vip-mode-map "O" (quote vip-Open-line))
  927.  
  928. (define-key vip-mode-map "P" (quote vip-Put-back))
  929.  
  930. (define-key vip-mode-map "Q" (quote vip-query-replace))
  931.  
  932. (define-key vip-mode-map "R" (quote vip-replace-string))
  933.  
  934. (define-key vip-mode-map "S" (quote vip-switch-to-buffer-other-window))
  935.  
  936. (define-key vip-mode-map "T" (quote vip-goto-char-backward))
  937.  
  938. (define-key vip-mode-map "U" (quote vip-nil))
  939.  
  940. (define-key vip-mode-map "V" (quote vip-find-file-other-window))
  941.  
  942. (define-key vip-mode-map "W" (quote vip-forward-Word))
  943.  
  944. (define-key vip-mode-map "X" (quote vip-ctl-x-equivalent))
  945.  
  946. (define-key vip-mode-map "Y" (quote vip-yank-line))
  947.  
  948. (define-key vip-mode-map "ZZ" (quote save-buffers-kill-emacs))
  949.  
  950. (define-key vip-mode-map "[" (quote vip-nil))
  951.  
  952. (define-key vip-mode-map "\\" (quote vip-escape-to-emacs))
  953.  
  954. (define-key vip-mode-map "]" (quote vip-nil))
  955.  
  956. (define-key vip-mode-map "^" (quote vip-bol-and-skip-white))
  957.  
  958. (define-key vip-mode-map "_" (quote vip-nil))
  959.  
  960. (define-key vip-mode-map "`" (quote vip-goto-mark))
  961.  
  962. (define-key vip-mode-map "a" (quote vip-append))
  963.  
  964. (define-key vip-mode-map "b" (quote vip-backward-word))
  965.  
  966. (define-key vip-mode-map "c" (quote vip-command-argument))
  967.  
  968. (define-key vip-mode-map "d" (quote vip-command-argument))
  969.  
  970. (define-key vip-mode-map "e" (quote vip-end-of-word))
  971.  
  972. (define-key vip-mode-map "f" (quote vip-find-char-forward))
  973.  
  974. (define-key vip-mode-map "g" (quote vip-info-on-file))
  975.  
  976. (define-key vip-mode-map "h" (quote vip-backward-char))
  977.  
  978. (define-key vip-mode-map "i" (quote vip-insert))
  979.  
  980. (define-key vip-mode-map "j" (quote vip-next-line))
  981.  
  982. (define-key vip-mode-map "k" (quote vip-previous-line))
  983.  
  984. (define-key vip-mode-map "l" (quote vip-forward-char))
  985.  
  986. (define-key vip-mode-map "m" (quote vip-mark-point))
  987.  
  988. (define-key vip-mode-map "n" (quote vip-search-next))
  989.  
  990. (define-key vip-mode-map "o" (quote vip-open-line))
  991.  
  992. (define-key vip-mode-map "p" (quote vip-put-back))
  993.  
  994. (define-key vip-mode-map "q" (quote vip-nil))
  995.  
  996. (define-key vip-mode-map "r" (quote vip-replace-char))
  997.  
  998. (define-key vip-mode-map "s" (quote vip-switch-to-buffer))
  999.  
  1000. (define-key vip-mode-map "t" (quote vip-goto-char-forward))
  1001.  
  1002. (define-key vip-mode-map "u" (quote vip-undo))
  1003.  
  1004. (define-key vip-mode-map "v" (quote vip-find-file))
  1005.  
  1006. (define-key vip-mode-map "w" (quote vip-forward-word))
  1007.  
  1008. (define-key vip-mode-map "x" (quote vip-delete-char))
  1009.  
  1010. (define-key vip-mode-map "y" (quote vip-command-argument))
  1011.  
  1012. (define-key vip-mode-map "zH" (quote vip-line-to-top))
  1013.  
  1014. (define-key vip-mode-map "zM" (quote vip-line-to-middle))
  1015.  
  1016. (define-key vip-mode-map "zL" (quote vip-line-to-bottom))
  1017.  
  1018. (define-key vip-mode-map "z" (quote vip-line-to-top))
  1019.  
  1020. (define-key vip-mode-map "z." (quote vip-line-to-middle))
  1021.  
  1022. (define-key vip-mode-map "z-" (quote vip-line-to-bottom))
  1023.  
  1024. (define-key vip-mode-map "{" (quote vip-backward-paragraph))
  1025.  
  1026. (define-key vip-mode-map "|" (quote vip-goto-col))
  1027.  
  1028. (define-key vip-mode-map "}" (quote vip-forward-paragraph))
  1029.  
  1030. (define-key vip-mode-map "~" (quote vip-nil))
  1031.  
  1032. (define-key vip-mode-map "" (quote vip-delete-backward-char))
  1033.  
  1034. (defun vip-version nil (interactive) (byte-code "ÀˆÁÂ!‡" [nil message "VIP version 3.5 of September 15, 1987"] 2))
  1035.  
  1036. (defvar ex-token-type nil "\
  1037. type of token.  if non-nil, gives type of address.  if nil, it
  1038. is a command.")
  1039.  
  1040. (defvar ex-token nil "\
  1041. value of token.")
  1042.  
  1043. (defvar ex-addresses nil "\
  1044. list of ex addresses")
  1045.  
  1046. (defvar ex-flag nil "\
  1047. flag for ex flag")
  1048.  
  1049. (defvar ex-buffer nil "\
  1050. name of ex buffer")
  1051.  
  1052. (defvar ex-count nil "\
  1053. value of ex count")
  1054.  
  1055. (defvar ex-g-flag nil "\
  1056. flag for global command")
  1057.  
  1058. (defvar ex-g-variant nil "\
  1059. if t global command is executed on lines not matching ex-g-pat")
  1060.  
  1061. (defvar ex-reg-exp nil "\
  1062. save reg-exp used in substitute")
  1063.  
  1064. (defvar ex-repl nil "\
  1065. replace pattern for substitute")
  1066.  
  1067. (defvar ex-g-pat nil "\
  1068. pattern for global command")
  1069.  
  1070. (defvar ex-map (make-sparse-keymap) "\
  1071. save commnads for mapped keys")
  1072.  
  1073. (defvar ex-tag nil "\
  1074. save ex tag")
  1075.  
  1076. (defvar ex-file nil)
  1077.  
  1078. (defvar ex-variant nil)
  1079.  
  1080. (defvar ex-offset nil)
  1081.  
  1082. (defvar ex-append nil)
  1083.  
  1084. (defun vip-nil nil (interactive) (byte-code "ÀˆÁÂ!‡" [nil error ""] 2))
  1085.  
  1086. (defun vip-looking-back (str) "\
  1087. returns t if looking back reg-exp STR before point." (byte-code "ŠÃÁÂ#)…`ÄÅ!U‡" [str nil t re-search-backward match-end 0] 4))
  1088.  
  1089. (defun vip-check-sub (str) "\
  1090. check if ex-token is an initial segment of STR" (byte-code "    G
  1091. GX…Ä    
  1092. ÅO\"ƒ
  1093. ‰‚Ɖ)‡" [length ex-token str ex-token-type string= 0 "non-command"] 5))
  1094.  
  1095. (defun vip-get-ex-com-subr nil "\
  1096. get a complete ex command" (byte-code "Ã`!ˆÄÅ!ˆÆ‰ˆÇ`È \"‰ˆÉ ˆÊË!ƒ;ÊÌ!ƒ)ÍÎ!‚8ÊÏ!ƒ5ÍÐ!‚8ÍÑ!‚xÊÒ!ƒGӉ‚xÊÔ!ƒ_ÊÕ!ƒYÍÖ!‚\\Í×!‚xÊØ!ƒkÍÙ!‚xÊÚ!ƒƒÊÛ!ƒ}ÍÛ!‚€ÍÜ!‚xÊÝ!ƒÍÞ!‚xÊß!ƒ›Íà!‚xÊá!ƒ§Íâ!‚xÊã!ƒ³Íä!‚xÊå!ƒ¿Íæ!‚xÊç!ƒãÊè!ƒÑÍè!‚àÊé!ƒÝÍê!‚àÍë!‚xÊì!ƒûÊí!ƒõÍî!‚øÍï!‚xÊð!ƒÍñ!‚xÊò!ƒ+Êó!ƒÍô!‚(Êõ!ƒ%Íö!‚(Í÷!‚xÊø!ƒ7Íù!‚xÊú!ƒ[Êû!ƒIÍü!‚XÊý!ƒUÍþ!‚XÍÿ!‚xʁ@!ƒ«ʁA!ƒśB!‚¨ʁC!ƒƒ́D!‚¨ʁE!ƒ“́F!‚¨ʁG!ƒ£́H!‚΅I!‚xʁJ!ƒËʁK!ƒÃ́L!‚È́J!‚xʁM!ƒûʁN!ƒã́O!‚øʁP!ƒó́Q!‚ǿR!‚xʁS!ƒ+ʁT!ƒ́U!‚(ʁV!ƒ#́W!‚(́S!‚xʁX!ƒKʁY!ƒĆY!‚H́Z!‚xʁ[!ƒ[́\\!‚xʁ]!ƒḱ^!‚xʁ_!…x́_!ˆÉ ‡" [ex-token-type ex-token t set-mark re-search-forward "[a-z][a-z]*" "command" buffer-substring mark exchange-point-and-mark looking-at "a" "ab" vip-check-sub "abbreviate" "ar" "args" "append" "[bh]" "non-command" "c" "co" "copy" "change" "d" "delete" "e" "ex" "edit" "f" "file" "g" "global" "i" "insert" "j" "join" "l" "list" "m" "map" "mar" "mark" "move" "n" "nu" "number" "next" "o" "open" "p" "pre" "preserve" "pu" "put" "print" "q" "quit" "r" "rec" "recover" "rew" "rewind" "read" "s" "se" "set" "sh" "shell" "so" "source" "st" "stop" "substitute" "t" "ta" "tag" "u" "una" "unabbreviate" "unm" "unmap" "undo" "v" "ve" "version" "vi" "visual" "w" "wq" "write" "x" "xit" "y" "yank" "z"] 96))
  1097.  
  1098. (defun vip-get-ex-token nil "\
  1099. get an ex-token which is either an address or a command.
  1100. a token has type (command, address, end-mark) and value." (byte-code "ŋ‡" [ex-token-type ex-token t cont nil ((byte-code "ÅqˆÆÇ!ˆÈÉ!ƒʉˆËg!‰ˆÌÍ!‚ÈÎ!ƒ(Ï ‚ÈÐ!ƒ8ÌÍ!ˆÑ‰‚ÈÒ!ƒlÓ`!ˆÔÕ!ˆÖ×\"ƒQ؂]ÖÙ\"ƒ\\ڂ]ۉˆÜÝ`Þ \"!‰‚Èß!ƒ|ÌÍ!ˆà‰‚Èá!ƒŒÌÍ!ˆâ‰‚Èã!ƒÅÈä!†›Èå!ƒ¯ÌÍ!ˆæcˆçÍ!ˆ×‰‚ÂÈè!ƒ¿ÌÍ!ˆ×‰‚Âéê!‚Èë!ƒþÈì!†ÔÈí!ƒèÌÍ!ˆæcˆçÍ!ˆÙ‰‚ûÈî!ƒøÌÍ!ˆÙ‰‚ûéê!‚Èï!ƒGÌÍ!ˆÓ`!ˆÂl?… …)Ôð!ˆñò!?…%ĉˆ‚)ˆçÍ!ˆÝ`Þ \"‰ˆÈï!…@ÌÍ!ˆó‰‚Èô!ƒ’ÌÍ!ˆÓ`!ˆÂl?…] …Ôõ!ˆñö!?…nĉˆçÍ!ˆÈ÷!?…}ÌÍ!ˆ‚W)ˆø‰ˆÝ`SÞ \"‰‚Èù!ƒ¢ÌÍ!ˆú‰‚Èû!ƒ²ÌÍ!ˆü‰‚Èý!ƒÈʉˆËg!‰ˆÌÍ!‚Èþ!ƒúÿ‰ˆÌÍ!ˆÈþ!ƒâĉ‚óÈÎ!ƒîg‰‚óé@!ˆÌÍ!‚È÷!ƒA‰ˆB‰‚éC!‡" [ex-token-type ex-token t cont nil " *ex-working-space*" skip-chars-forward "     " looking-at "[k#]" "command" char-to-string forward-char 1 "[a-z]" vip-get-ex-com-subr "\\." "dot" "[0-9]" set-mark re-search-forward "[0-9]*" string= "plus" "add-number" "minus" "sub-number" "abs-number" string-to-int buffer-substring mark "\\$" "end" "%" "whole" "+" "+[-+]" "+[
  1101. |]" "1" backward-char "+[0-9]" error "Badly formed address" "-" "-[-+]" "-[
  1102. |]" "-[0-9]" "/" "[^/]*\\(/\\|
  1103. \\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" "search-forward" "\\?" "[^\\?]*\\(\\?\\|
  1104. \\)" "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?" "
  1105. " "search-backward" "," "comma" ";" "semi-colon" "[!=><&~]" "'" "goto-mark" "Marks are ' and a-z" "end-mark" "goto" "illegal token"] 72))] 1))
  1106.  
  1107. (defun vip-ex (&optional string) "\
  1108. ex commands within VIP." (interactive) (byte-code "ˆ† ‰ˆ†ÍÎ!ÂÇ`ϋˆÐ‰    ˆÂ‰
  1109. ˆ…õÑ ˆÒ    Ó\"†>Ò    Ô\"ƒ{…L
  1110. B‰
  1111. ˆÒ Õ\"ƒ`ÖÂ!ˆÂ‰‚xÒ ×\"ƒsÖÇ!ˆÂ‰‚xØ ˆÙ‹‚ñÒ    Ú\"ƒÛÜÝ \"!‚ñÒ    Þ\"ƒ¡de
  1112. BB‰
  1113. ‚ñÒ    ß\"ƒ¼?ƒ²`‚³
  1114. B‰
  1115. ‚ñÒ    à\"ƒà…̉ˆ?ƒÖ`‚×
  1116. B‰
  1117. ‚ñá\"  …ð ‰)ˆ‚),‡" [string ex-g-flag nil ex-g-variant com-str address cont t dot ex-token-type ex-addresses ex-token ans vip-read-string ":" ((byte-code "ÁÂ!qˆÃed\"ˆÄÅ\"ˆeb‡" [com-str get-buffer-create " *ex-working-space*" delete-region insert "
  1118. "] 5)) "" vip-get-ex-token string= "command" "end-mark" "global" ex-global "v" vip-execute-ex-command ((byte-code "ÃqˆÄÅ!ˆÆÇ!ƒÈÉ!‚\"ÆÊ!ƒÁ‰‚\"ËÌ!‡" [cont nil t " *ex-working-space*" skip-chars-forward "     " looking-at "|" forward-char 1 "
  1119. " error "Extra character at end of a command"] 6)) "non-command" error format "%s: Not an editor command" "whole" "comma" "semi-colon" vip-get-ex-address-subr] 19))
  1120.  
  1121. (defun vip-get-ex-pat nil "\
  1122. get a regular expression and set ex-variant if found" (byte-code "Ƌ‡" [ex-g-variant ex-g-flag cont t nil ex-token ((byte-code "ÆqˆÇÈ!ˆÉÊ!…?    ?‰ˆËÌ!ˆÇÈ!ˆÉÍ!ƒdËÌ!ˆÎ`!ˆÃl?…3
  1123. …HÏÐ!ˆÑÒ!?…Dĉˆ‚-)ˆÓ `UƒUԂ[Õ`SÓ \"‰ˆÖÌ!‚gĉ‡" [ex-g-variant ex-g-flag cont t nil ex-token " *ex-working-space*" skip-chars-forward "     " looking-at "!" forward-char 1 "/" set-mark re-search-forward "[^/]*\\(/\\|
  1124. \\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" mark "" buffer-substring backward-char] 15))] 1))
  1125.  
  1126. (defun vip-get-ex-command nil "\
  1127. get an ex command" (byte-code "ˇ" [ex-token-type ex-token t ((byte-code "ÃqˆÄÅ!… ÆÇ!ˆÈÉ!ˆÄÊ!ƒ(Ë ˆÌÍ\"…%ÎÏ    \"‚=ÄÐ!ƒ:Ñg!‰ˆÆÇ!‚=ÎÒ!‡" [ex-token-type ex-token t " *ex-working-space*" looking-at "/" forward-char 1 skip-chars-forward "     " "[a-z]" vip-get-ex-com-subr string= "non-command" error "%s: not an editor command" "[!=><&~]" char-to-string "Could not find an ex command"] 12))] 1))
  1128.  
  1129. (defun vip-get-ex-opt-gc nil "\
  1130. get an ex option g or c" (byte-code "ˇ" [ex-token t nil ((byte-code "ÃqˆÄÅ!… ÆÇ!ˆÈÉ!ˆÄÊ!ƒ#ʉˆÆÇ!ˆÁ‚6ÄË!ƒ5ˉˆÆÇ!ˆÁ‚6‡" [ex-token t nil " *ex-working-space*" looking-at "/" forward-char 1 skip-chars-forward "     " "g" "c"] 8))] 1))
  1131.  
  1132. (defun vip-default-ex-addresses (&optional whole-flag) "\
  1133. compute default addresses.  whole-flag means whole buffer." (byte-code "?ƒ    ƒdeÂBB‚``ÂBB‰‚'A?…'@B‰‡" [ex-addresses whole-flag nil] 3))
  1134.  
  1135. (defun vip-get-ex-address nil "\
  1136. get an ex-address as a marker and set ex-flag if a flag is found" (byte-code "È ÂɉˆÅ‰ˆ    …€Ê ˆËÌ\"ƒAË Í\"†.Ë Î\"†.Ë Ï\"ƒ;‰ˆÅ‰‚>ÐÑ!‚|ËÒ\"ƒOʼn‚|ËÓ\"ƒ]ÐÔ!‚|ËÕ\"ƒkÐÖ!‚|×È \"…{‰)ˆ‚ˆ*‡" [address cont t ex-token ex-flag nil ex-token-type ans point-marker "" vip-get-ex-token string= "command" "print" "list" "#" error "address expected" "end-mark" "whole" "a trailing address is expected" "comma" "Extra characters after an address" vip-get-ex-address-subr] 17))
  1137.  
  1138. (defun vip-get-ex-address-subr (old-address dot) "\
  1139. returns an address as a point" (byte-code "Á
  1140. ‰ˆÇ È\"ƒ ‰‚âÇ É\"ƒ:Š
  1141. bˆÊ
  1142. ËUƒ/S‚0!ˆÌ ‰)‚âÇ Í\"ƒRŠ
  1143. bˆÊ[!ˆÌ ‰)‚âÇ Î\"ƒvŠebˆËUƒiˉ‚rÊS!ˆÌ ‰)‚âÇ Ï\"ƒ„Р‰‚âÇ Ñ\"ƒÆ‚âÇ Ò\"ƒšÆ‚âÇ Ó\"ƒ®ŠÔÆ!ˆÌ ‰)‚âÇ Õ\"ƒÂŠÔÁ!ˆÌ ‰)‚âÇ Ö\"…âŠ?ƒÔ× ‚ÜØÙÚZZ!bˆÌ ‰)ˆ)‡" [address nil old-address dot ex-token-type ex-token t string= "dot" "add-number" forward-line 0 point-marker "sub-number" "abs-number" "end" point-max-marker "plus" "minus" "search-forward" ex-search-address "search-backward" "goto-mark" exchange-point-and-mark register-to-point 97 1] 26))
  1144.  
  1145. (defun ex-search-address (forward) "\
  1146. search pattern and set address" (byte-code "ÃÄ\"ƒ    ?ƒÅÆ!‚    ‰‚‰ˆ
  1147. ƒ*ÇÈ!ˆÉ!‚1ÇÊ!ˆË!‡" [ex-token vip-s-string forward string= "" error "No previous search string" forward-line 1 re-search-forward -1 re-search-backward] 7))
  1148.  
  1149. (defun vip-get-ex-buffer nil "\
  1150. get a buffer name and set ex-count and ex-flag if found" (byte-code "Á‰ˆÁ‰ˆÁ‰ˆÅ‹‡" [ex-buffer nil ex-count ex-flag t ((byte-code "ÄqˆÅÆ!ˆÇÈ!…g‰ˆÉÊ!ˆÅÆ!ˆÇË!…4Ì`!ˆÍÎ!ˆÏÐ`Ñ \"!‰ˆÅÆ!ˆÇÒ!…BɈÉÊ!ˆÇÓ!?…MÔÕ!‡" [ex-buffer ex-count ex-flag t " *ex-working-space*" skip-chars-forward "     " looking-at "[a-zA-Z]" forward-char 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int buffer-substring mark "[pl#]" "[
  1151. |]" error "Illegal extra characters"] 16))] 2))
  1152.  
  1153. (defun vip-get-ex-count nil (byte-code "ÁÁÁ‰ˆÅ‹‡" [ex-variant nil ex-count ex-flag t ((byte-code "ÄqˆÅÆ!ˆÇÈ!…Á‰ˆÉÊ!ˆÅÆ!ˆÇË!…4Ì`!ˆÍÎ!ˆÏÐ`Ñ \"!‰ˆÅÆ!ˆÇÒ!…BÁ‰ˆÉÊ!ˆÇÓ!?…MÔÕ!‡" [ex-variant t ex-count ex-flag " *ex-working-space*" skip-chars-forward "     " looking-at "!" forward-char 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int buffer-substring mark "[pl#]" "[
  1154. |]" error "Illegal extra characters"] 16))] 2))
  1155.  
  1156. (defun vip-get-ex-file nil "\
  1157. get a file name and set ex-variant, ex-append and ex-offset if found" (byte-code "ÁÁÁÁ‰ˆÆ‹‡" [ex-file nil ex-variant ex-append ex-offset t ((byte-code "ÅqˆÆÇ!ˆÈÉ!…Á‰ˆÊË!ˆÆÇ!ˆÈÌ!…,ÁÁ‰ˆÊÍ!ˆÆÇ!ˆÈÎ!…RÊË!ˆÏ`!ˆÐÑ!ˆÒË!ˆÓ`Ô \"‰ˆÊË!ˆÆÇ!ˆÏ`!ˆÐÑ!ˆÒË!ˆÓ`Ô \"‰‡" [ex-variant t ex-append ex-offset ex-file " *ex-working-space*" skip-chars-forward "     " looking-at "!" forward-char 1 ">>" 2 "+" set-mark re-search-forward "[     
  1158. ]" backward-char buffer-substring mark] 23))] 2))
  1159.  
  1160. (defun vip-execute-ex-command nil "\
  1161. execute ex command using the value of addresses." (byte-code "ÃÄ\"ƒ Å ‚?ÃÆ\"ƒÇÁ!‚?ÃÈ\"ƒ%É ‚?ÃÊ\"ƒ1Ë ‚?ÃÌ\"ƒ=Í ‚?ÃÎ\"ƒJÏÎ!‚?ÃÐ\"ƒVÑ ‚?ÃÒ\"ƒbÑ ‚?ÃÓ\"ƒnÔ ‚?ÃÕ\"ƒ{ÇÂ!‚?ÃÖ\"ƒ‡× ‚?ÃØ\"ƒ“Ù ‚?ÃÚ\"ƒŸÛ ‚?ÃÜ\"ƒ«Ý ‚?ÃÞ\"ƒ·ß ‚?Ãà\"ƒÃ᠂?Ãâ\"ƒÏ㠂?Ãä\"ƒÜÇÁ!‚?Ãå\"ƒè栂?Ãç\"ƒô蠂?Ãé\"ƒꠂ?Ãë\"ƒ 젂?Ãí\"ƒË ‚?Ãî\"ƒ%ïÁ!‚?Ãð\"ƒ2ïÂ!‚?Ãñ\"ƒ>ò ‚?Ãó\"ƒJô ‚?Ãõ\"ƒVö ‚?Ã÷\"ƒcÏø!‚?Ãù\"ƒpÏú!‚?Ãû\"ƒ}áÂ!‚?Ãü\"ƒ‹áÂÂ\"‚?Ãý\"†¯Ãþ\"†¯Ãÿ\"†¯Á@\"†¯ÁA\"ƒÁBCD\"!‚?ÁE\"†!ÁF\"†!ÁG\"†!ÁH\"†!ÁI\"†!ÁJ\"†!ÁK\"†!ÁL\"†!ÁM\"†!ÁN\"†!ÁO\"ƒ3BCP\"!‚?BCQ\"!‡" [ex-token nil t string= "goto" ex-goto "copy" ex-copy "delete" ex-delete "edit" ex-edit "file" vip-info-on-file "join" ex-line "k" ex-mark "mark" "map" ex-map "move" "put" ex-put "quit" ex-quit "read" ex-read "set" ex-set "shell" ex-shell "substitute" ex-substitute "stop" suspend-emacs "t" "tag" ex-tag "undo" vip-undo "unmap" ex-unmap "version" vip-version "visual" "write" ex-write "wq" "yank" ex-yank "!" ex-command "=" ex-line-no ">" "right" "<" "left" "&" "~" "append" "args" "change" "insert" "open" error format "%s: no such command from VIP" "abbreviate" "list" "next" "print" "preserve" "recover" "rewind" "source" "unabbreviate" "xit" "z" "%s: not implemented in VIP" "%s: Not an editor command"] 88))
  1162.  
  1163. (defun ex-goto nil "\
  1164. ex goto command" (byte-code "?…
  1165. `ÁB‰ˆÂ`!ˆ@bˆÃ ‡" [ex-addresses nil push-mark beginning-of-line] 3))
  1166.  
  1167. (defun ex-copy (del-flag) "\
  1168. ex copy and move command.  DEL-FLAG means delete." (byte-code "É ˆÊ 
  1169. @
  1170. A@    bˆŠË !ˆÌÍ `\"ˆ ƒ'Î`Í \"‚,Ï`Í \"ˆ…TÐÑ †?†?ƒH@‚MÒ`Í \"!‘ˆÓÔՏ)ˆÖUƒaeb‚gbˆ×Ø!ˆ@c+‡" [address end ex-addresses beg del-flag ex-flag ex-g-flag ex-g-variant kill-ring-yank-pointer vip-default-ex-addresses vip-get-ex-address set-mark vip-enlarge-region mark kill-region copy-region-as-kill "*copy text*" princ buffer-substring nil (byte-code "ÀÁ!ˆŠÂÃ!)‡" [vip-read-string "[Hit return to continue] " kill-buffer "*copy text*"] 3) ((quit (byte-code "ŠÁÂ!)ˆÃÄÀ\"‡" [nil kill-buffer "*copy text*" signal quit] 4))) 0 forward-line 1] 15))
  1171.  
  1172. (defun ex-delete nil "\
  1173. ex delete" (byte-code "Ç ˆÈ ˆ    @    A@
  1174. V…ÉÊ!ˆŠË
  1175. \"ˆÌ ˆ ƒ/Í`!ˆÎ S!‚2Í!ˆË`Ï \"ˆ ƒUАÑÒ`Ï \"!‘ˆÓÔՏˆŠÖÐ!)‚~…x×X…bØXƒqÙÚ\\`Ï Æ$‚xÛ`Ï Æ$ˆÜ`Ï \")*‡" [end ex-addresses beg ex-count ex-flag ex-buffer nil vip-default-ex-addresses vip-get-ex-buffer error "First address exceeds second" vip-enlarge-region exchange-point-and-mark set-mark forward-line mark " *delete text*" princ buffer-substring conditions (byte-code "ÀÁ!‡" [vip-read-string "[Hit return to continue] "] 2) ((quit (byte-code "ŠÀÁ!)ˆÂÃ!‡" [kill-buffer " *delete text*" error ""] 3))) kill-buffer 65 90 vip-append-to-register 32 copy-to-register delete-region] 22))
  1176.  
  1177. (defun ex-edit nil "\
  1178. ex-edit" (byte-code "Å ˆ?…Æ …    …ÇÈ!ˆÉ ˆÊ
  1179. P!qˆË ˆebˆ …2̋ˆÍ bˆÎ ‡" [ex-variant buffer-file-name default-directory ex-file ex-offset vip-get-ex-file buffer-modified-p error "No write since last change (:e! overrides)" vip-change-mode-to-emacs find-file-noselect vip-change-mode-to-vi ((byte-code "ÁqˆÂed\"ˆÃÄ\"ˆeb‡" [ex-offset " *ex-working-space*" delete-region insert "
  1180. "] 4)) vip-get-ex-address beginning-of-line] 9))
  1181.  
  1182. (defun ex-global (variant) "\
  1183. ex global command" (byte-code "†    ƒÑÒ!‚
  1184. ƒÃĉ‚ÄɈӠˆ?…+ÑÔ!ˆÕÖ\"ƒG?ƒ?Ñ×!‚D‰‚N‰ˆ?…[deD‰ˆÃØÃ@A@  
  1185.      V…{ÑÙ!ˆŠÚ \"ˆÛ ˆÄÜ Û ˆÝ ˆm…šo?… Þß!ˆ…¯o?…¯`Y…Ý ˆà`!ˆá ˆâã Ä#…ˆՠ   …Õ?…ê᠈
  1186. T‰
  1187. ˆÜ     B‰    )ˆÝ ˆoƒúÉ‚äå!ˆá ˆ‚¡*)ˆæ‹ˆ    …*    @bˆç !ˆ
  1188. S‰
  1189. ˆ    A‰    ˆ‚
  1190. -‡" [ex-g-flag ex-g-variant variant nil t ex-token vip-s-string ex-g-pat ex-addresses marks mark-count com-str end beg cont limit found error "Global within global not allowed" vip-get-ex-pat "Missing regular expression for global command" string= "" "No previous search string" 0 "First address exceeds second" vip-enlarge-region exchange-point-and-mark point-marker beginning-of-line backward-char 1 set-mark end-of-line re-search-backward mark forward-line -1 ((byte-code "ÁqˆÂ`TdS\"‰‡" [com-str " *ex-working-space*" buffer-substring] 3)) vip-ex] 26))
  1191.  
  1192. (defun ex-line (com) "\
  1193. ex line commands.  COM is join, shift-right or shift-left." (byte-code "Ç ˆÈ ˆ    @    A@É
  1194. V…ÊË!ˆŠÌ
  1195. \"ˆÍ ˆ …-Î`!ˆÏ !ˆƒJАÑÒ`Ó \"!‘ˆÔÕ֏ˆŠ×Ð!)‚QØ`Ó #ˆ`‰)ˆ SbˆÙ +‡" [end ex-addresses beg point ex-count ex-flag com vip-default-ex-addresses vip-get-ex-count nil error "First address exceeds second" vip-enlarge-region exchange-point-and-mark set-mark forward-line " *text*" princ buffer-substring mark conditions (byte-code "ÁÂ!ˆÃ`Ä #‡" [com vip-read-string "[Hit return to continue] " ex-line-subr mark] 6) ((quit (byte-code "À ‡" [ding] 2))) kill-buffer ex-line-subr beginning-of-line] 16))
  1196.  
  1197. (defun ex-line-subr (com beg end) (byte-code "ÅÆ\"ƒA    
  1198. ^bˆm?…`    
  1199. ]W…>Ç ˆ`    
  1200. ]X…&m?…:ÈÉ!ˆÊ``S\"ˆ ?…:Ë ˆ‚ ‚pÅÌ\"†LÅÍ\"…pΠ   
  1201. ^    
  1202. ]ÅÌ\"ƒa ‚c [#ˆ    
  1203. ]bˆÇ ˆÏÉ!‡" [com beg end ex-variant vip-shift-width string= "join" end-of-line forward-line 1 delete-region fixup-whitespace "right" "left" indent-rigidly forward-char] 13))
  1204.  
  1205. (defun ex-mark nil "\
  1206. ex mark" (byte-code "    ?… `ÂB‰ˆÃ‹ˆŠ    @bˆÄÅÆZZ!))‡" [char ex-addresses nil ((byte-code "ÁqˆÂÃ!ˆÄÅ!ƒ&g‰ˆÆÇ!ˆÂÃ!ˆÄÈ!?…#ÉÊ!‚5ÄÈ!ƒ2ÉË!‚5ÉÌ!‡" [char " *ex-working-space*" skip-chars-forward "     " looking-at "[a-z]" forward-char 1 "[
  1207. |]" error "Extra characters at end of \"k\" command" "\"k\" requires a following letter" "Mark must specify a letter"] 10)) point-to-register 97 1] 4))
  1208.  
  1209. (defun ex-map nil "\
  1210. ex map" (byte-code "ÄÄŋˆÆ
  1211. \"?…Ç
  1212. Æ \"†È#ˆÇ ÉÊËÌÍΠ   ÏEEBD!#*‡" [char string ex-map vip-mode-map nil ((byte-code "ÂqˆÃÄ!ˆÅg!‰ˆÆÇ!ˆÃÄ!ˆÈÉ!…ÊË!ˆÌ`!ˆÍ ˆÎÇ!ˆÏР`\"‰‡" [char string " *ex-working-space*" skip-chars-forward "     " char-to-string forward-char 1 looking-at "[
  1213. |]" error "Missing rhs" set-mark end-of-buffer backward-char buffer-substring mark] 13)) lookup-key define-key vip-nil eval quote lambda (count) (interactive "p") execute-kbd-macro count] 14))
  1214.  
  1215. (defun ex-unmap nil "\
  1216. ex unmap" (byte-code "ÃċˆÅ    \"?…ÆÇ!ˆÈ
  1217. Å    \"#ˆÈ    Ã#)‡" [char ex-map vip-mode-map nil ((byte-code "ÁqˆÂÃ!ˆÄg!‰ˆÅÆ!ˆÂÃ!ˆÇÈ!?…ÉÊ!‡" [char " *ex-working-space*" skip-chars-forward "     " char-to-string forward-char 1 looking-at "[
  1218. |]" error "Macro must be a character"] 7)) lookup-key error "That macro wasn't mapped" define-key] 8))
  1219.  
  1220. (defun ex-put nil "\
  1221. ex put" (byte-code "    ?ƒ    `‚     @Ä ˆ ‰ˆbˆÅUƒ\"ÆÇ!‚%ÈÇ!)‡" [point ex-addresses vip-use-register ex-buffer vip-get-ex-buffer 0 vip-Put-back 1 vip-put-back] 4))
  1222.  
  1223. (defun ex-quit nil "\
  1224. ex quit" (byte-code "ÂˈÄUƒÅÁ!‚Æ )‡" [char t nil ((byte-code "ÁqˆÂÃ!ˆg‰‡" [char " *ex-working-space*" skip-chars-forward "     "] 3)) 33 kill-emacs save-buffers-kill-emacs] 3))
  1225.  
  1226. (defun ex-read nil "\
  1227. ex read" (byte-code "    ?ƒ    `‚     @ÃÃÃbˆÇU?…ÈÉ!ˆÊ ˆË‹ˆ
  1228. ƒ1Ì Æ\"‚4Í!,‡" [point ex-addresses variant nil command file t 0 next-line 1 beginning-of-line ((byte-code "ÄqˆÅÆ!ˆÇÈ!ƒ*Á‰ˆÉÊ!ˆÅÆ!ˆË`!ˆÌ ˆÍΠ`\"‰‚=Ë`!ˆÏÐ!ˆÑÊ!ˆÍ`Π\"‰‡" [variant t command file " *ex-working-space*" skip-chars-forward "     " looking-at "!" forward-char 1 set-mark end-of-line buffer-substring mark re-search-forward "[     
  1229. ]" backward-char] 15)) shell-command insert-file] 5))
  1230.  
  1231. (defun ex-set nil (byte-code "ÀÁÂÃ!ÀÄÅ!!E!‡" [eval setq read-variable "Variable: " read-minibuffer "Value: "] 7))
  1232.  
  1233. (defun ex-shell nil "\
  1234. ex shell" (byte-code "À ˆÁ ‡" [vip-change-mode-to-emacs shell] 3))
  1235.  
  1236. (defun ex-substitute (&optional repeat r-flag) "\
  1237. ex substitute. if REPEAT use previous reg-exp which is ex-reg-exp or
  1238. vip-s-string" (byte-code "ÃÃÃÃÃɂԠˆ?ƒ3ƒ)    ‚+
  1239.  ‰‚hÕÖ\"ƒ@    ‚B‰ˆ    ‰
  1240. ˆÔ ˆ?ƒ`Ö։ ‚h‰ ˆ× …ƒÕØ\"ƒ|̉‚̉ˆ‚iˆÙ ˆƒ®Š…–@bˆÚ`!ˆÛS!ˆ`Ü ÃBB‰)‚Ï?ƒ¿``ÃBB‰‚ÏA?…Ï@B‰ˆ@A@ÌÊÝ\"ˆŠ`Ü ]bˆÞ )`Ü ^bˆ`W…dß ˆà ‰ˆá ˆ
  1241. ƒ?l?…âÌ#…6 ?†(ãä!…2`‰ˆå    !ˆ‚ˆß ˆæ ‚`âÌ#…P ?†Pãä!…Z`‰ˆå    !ˆß ˆæ ˆ‚û)),ˆ…nbˆá ˆ …yçè!-‡" [pat repl opt-g nil opt-c matched-pos repeat ex-token r-flag vip-s-string ex-reg-exp ex-repl t ex-count ex-addresses beg end cont eol-mark limit vip-get-ex-pat string= "" vip-get-ex-opt-gc "g" vip-get-ex-count set-mark forward-line mark vip-enlarge-region point-marker end-of-line dot-marker beginning-of-line re-search-forward y-or-n-p "Replace? " replace-match forward-char message "done"] 29))
  1242.  
  1243. (defun ex-tag nil "\
  1244. ex tag" (byte-code "ÂˈÄÅ\"?…‰ˆÆ ˆÇÈɏ)‡" [tag ex-tag nil ((byte-code "ÁqˆÂÃ!ˆÄ`!ˆÂÅ!ˆÆÇ `\"‰‡" [tag " *ex-working-space*" skip-chars-forward "     " set-mark "^ |    
  1245. " buffer-substring mark] 7)) string= "" vip-change-mode-to-emacs conditions (byte-code "ÃÄ\"ƒÅ    Â\"‚Æ    !ˆÇ ‡" [tag ex-tag t string= "" find-tag find-tag-other-window vip-change-mode-to-vi] 5) ((error (byte-code "Á ˆÂ!‡" [conditions vip-change-mode-to-vi vip-message-conditions] 3)))] 5))
  1246.  
  1247. (defun ex-write (q-flag) "\
  1248. ex write" (byte-code "ÉÀ!ˆÊ ˆË    Ì\"ƒ
  1249. ?…ÍÎ!ˆ
  1250. ‰‚\"Ï    !‰ˆË    Â \"?…4Р   !…4 ?…=ÍÑÒ    \"!ˆ@A@ V…PÍÓ!ˆŠÔ \"ˆÕ`Ö     À%)*ˆ
  1251. ?…l    ‰ˆ…x× ˆØp!‡" [t ex-file buffer-file-name ex-variant end ex-addresses beg ex-append q-flag vip-default-ex-addresses vip-get-ex-file string= "" error "No file associated with this buffer" expand-file-name file-exists-p format "\"%s\" File exists - use w! to override" "First address exceeds second" vip-enlarge-region write-region mark delete-auto-save-file-if-necessary kill-buffer] 19))
  1252.  
  1253. (defun ex-yank nil "\
  1254. ex yank" (byte-code "É ˆÊ ˆ    @    A@
  1255. V…ËÌ!ˆŠÍ
  1256. \"ˆÎ ˆ †% …+ËÏ!ˆƒ;Ð`!ˆÑS!‚>Ð!ˆÍ`Ò \"ˆ…MËÓ!ˆ…[Ô`Ò È$ˆÕ`Ò \")*‡" [end ex-addresses beg ex-g-flag ex-g-variant ex-count ex-flag ex-buffer nil vip-default-ex-addresses vip-get-ex-buffer error "First address exceeds second" vip-enlarge-region exchange-point-and-mark "Can't yank within global" set-mark forward-line mark "Extra chacters at end of command" copy-to-register copy-region-as-kill] 18))
  1257.  
  1258. (defun ex-command nil "\
  1259. execute shell command" (byte-code "ÅƋˆ    ?ƒÇ!‚:    @    A@ ?…
  1260. ‰ˆŠ bˆÈ
  1261. !ˆÉ`Ê \"ˆË`Ê Ä$)ˆ b*)‡" [command ex-addresses end beg t nil ((byte-code "ÁqˆÂÃ!ˆÄ`!ˆÅ ˆÆÇ `\"‰‡" [command " *ex-working-space*" skip-chars-forward "     " set-mark end-of-line buffer-substring mark] 7)) shell-command set-mark vip-enlarge-region mark shell-command-on-region] 10))
  1262.  
  1263. (defun ex-line-no nil "\
  1264. print line number" (byte-code "ÁÂÃe?ƒd‚@\"T\"‡" [ex-addresses message "%d" count-lines] 5))
  1265.  
  1266. (if (file-exists-p "~/.vip") (load "~/.vip"))
  1267.